2010-08-20 12 views
0

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

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)? –

+0

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

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:-