J'essaie de générer un trigger, dans l'instruction trigger Je dois définir une colonne de type decimal (17,3) avec l'horodatage actuel ou les secondes de timestamp unix, mais je n'ai pas trouvé de solution.Comment stocker l'horodatage au format décimal (17,3) dans mysql?
0
A
Répondre
0
J'ai trouvé la solution
spécifier le type de données dans la table mysql en décimal (17,3) hibernent carte décimal du type Java BigDecimal, et avec une fonction simple:
public static Date bigDec2Date(BigDecimal tsp) {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(tsp.longValue());
return cal.getTime();
}
0
// Try this (code Java)
Timestamp timestamp = new Timestamp(System.currentTimeMillis());// current time
String decimalTime= new SimpleDateFormat("yyyyMMddhhmmss.SSS").format(timestamp);
System.err.println(decimalTime);
// dans une base MySQL
SELECT timestamp('<decimalTime>');// eg:-
Puis-je vous demander - pourquoi? Pourquoi avez-vous besoin de stocker un nombre entier de 4 octets dans un type de champ décimal (17,3)? –
Un hôte distant envoie également des horodatages qui doivent être stockés dans ce champ, mais les horodatages de l'hôte distant sont fournis en millisecondes. La date ou l'horodatage des types MySql ne peuvent pas stocker des millisecondes, c'est pourquoi j'utilise décimal (17,3). – Alex