h2 - poner - que es tags h1 y cursiva
Cadena de base de datos H2 a la marca de tiempo (1)
Según mi prueba, con H2 versión 1.3.170, los milisegundos no son realmente cero, pero 069:
select * from test;
ID DATE
1 2012-09-17 18:47:52.069
Lo mismo ocurre si ejecuta:
call parsedatetime(''17-09-2012 18:47:52.69'', ''dd-MM-yyyy hh:mm:ss.SS'');
Si agrega un cero, entonces funciona:
call parsedatetime(''17-09-2012 18:47:52.690'', ''dd-MM-yyyy hh:mm:ss.SS'');
H2 internamente usa java.text.SimpleDateFormat
, por lo que tiene que vivir con las mismas limitaciones. Si encuentra una solución dentro de SimpleDateFormat
, puede usarla dentro de la función parsedatetime
en H2.
Una alternativa es usar el formato de marca de tiempo ISO como se define en JDBC. Se supone que esto funciona con todas las bases de datos que conforman el estándar JDBC:
INSERT INTO TEST VALUES(2, {ts ''2012-09-17 18:47:52.69''});
Inserción de marcas de tiempo en la base de datos H2
Hola, tengo que insertar datos como ''17 -09-2012 18: 47: 52.69 ''. La función PARSEDATETIME corta milisegundos. Ejemplo de consulta:
CREATE TABLE TEST(ID NUMBER(19) not null,
DATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
INSERT INTO TEST (ID, DATE) VALUES(1,
parsedatetime(''17-09-2012 18:47:52.69'', ''dd-MM-yyyy hh:mm:ss.SS''))
Después de SELECT veo que los milisegundos son ceros.
¿Cuál es la solución?