@Override public java.sql.Timestamp convertToPersisted(LocalDateTime value) { if (value == null) { return null; } return java.sql.Timestamp.valueOf(value); }
/**获取时间戳 TODO 判空? 还是要报错? * @param time * @return */ public static Timestamp getTimeStamp(String time) { return Timestamp.valueOf(time); } /**获取时间毫秒值 TODO 判空? 还是要报错?
@Override public void apply(final int position, final PreparedStatement statement, final StatementContext ctx) throws SQLException { if (value != null) { statement.setTimestamp(position, Timestamp.valueOf(value)); } else { statement.setNull(position, Types.TIMESTAMP); } } }
@Override public void apply(int position, PreparedStatement statement, StatementContext ctx) throws SQLException { if (value != null) { statement.setTimestamp(position, Timestamp.valueOf(value.atStartOfDay())); } else { statement.setNull(position, Types.TIMESTAMP); } } }
@Override public Timestamp[] getValidTestResults() { return new Timestamp[] { Timestamp.valueOf("1970-01-01 00:00:00.000"), Timestamp.valueOf("1990-10-14 02:42:25"), Timestamp.valueOf("1990-10-14 02:42:25.123"), Timestamp.valueOf("1990-10-14 02:42:25.123000001"), Timestamp.valueOf("1990-10-14 02:42:25.123000002"), Timestamp.valueOf("2013-08-12 14:15:59.478"), Timestamp.valueOf("2013-08-12 14:15:59.47"), Timestamp.valueOf("0000-01-01 00:00:00.000") }; }
private Timestamp getBeforeStamp(Timestamp date, int step) { Calendar cal = Calendar.getInstance(); /** * date 换成已经已知的Date对象 */ cal.setTime(date); /** * before 6 hour */ cal.add(Calendar.HOUR_OF_DAY, -step); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return Timestamp.valueOf(format.format(cal.getTime())); }
@Override protected Timestamp[] getSortedTestData() { return new Timestamp[] { Timestamp.valueOf("1970-01-01 00:00:00.000"), Timestamp.valueOf("1990-10-14 02:42:25.123"), Timestamp.valueOf("1990-10-14 02:42:25.123000001"), Timestamp.valueOf("1990-10-14 02:42:25.123000002"), Timestamp.valueOf("2013-08-12 14:15:59.478"), Timestamp.valueOf("2013-08-12 14:15:59.479"), Timestamp.valueOf("2040-05-12 18:00:45.999") }; } }
@Override protected Timestamp[] getTestData() { return new Timestamp[] { new Timestamp(0L), Timestamp.valueOf("1970-01-01 00:00:00.000"), Timestamp.valueOf("1990-10-14 02:42:25.123"), Timestamp.valueOf("1990-10-14 02:42:25.123000001"), Timestamp.valueOf("1990-10-14 02:42:25.123000002"), Timestamp.valueOf("2013-08-12 14:15:59.478"), Timestamp.valueOf("2013-08-12 14:15:59.479"), Timestamp.valueOf("2040-05-12 18:00:45.999") }; } }
@Override public Timestamp convertToDatabaseColumn(LocalDateTime localDateTime) { return localDateTime == null ? null : Timestamp.valueOf( localDateTime ); }
ps.setTimestamp(2, new java.sql.Timestamp(System.currentTimeMillis())); // Since Java 8 ps.setTimestamp(2, java.sql.Timestamp.from(java.time.Instant.now())); ps.setTimestamp(2, java.sql.Timestamp.valueOf(java.time.LocalDateTime.now()));
private static Timestamp toTimestamp(int year, int month, int day, int hour, int minute, int second) { return Timestamp.valueOf(LocalDateTime.of(year, month, day, hour, minute, second)); }
@Test(groups = FUNCTIONS) public void testToTimestamp() { assertThat(onPresto().executeQuery("SELECT to_timestamp('1988/04/08;02:03:04','yyyy/mm/dd;hh24:mi:ss')")) .contains(row(Timestamp.valueOf(LocalDateTime.of(1988, 4, 8, 2, 3, 4)))); }
private static void assertTimestampCorrect(String timestampString) { Timestamp timestamp = Timestamp.valueOf(timestampString); Binary timestampBytes = NanoTimeUtils.getNanoTime(timestamp, false).toBinary(); long decodedTimestampMillis = getTimestampMillis(timestampBytes); assertEquals(decodedTimestampMillis, timestamp.getTime()); } }
@Test public void testBulkUpdate() { doInJPA( this::entityManagerFactory, entityManager -> { int updateCount = entityManager.createQuery( "UPDATE Person u " + "SET u.employedOn = :date " + "WHERE u.id IN :userIds" ) .setParameter( "date", Timestamp.valueOf( "2018-06-03 00:00:00" ) ) .setParameter( "userIds", Arrays.asList(1L, 2L, 3L ) ) .executeUpdate(); assertEquals(3, updateCount); }); }
@Test public void testConvertTimestamp() throws SQLException { LocalDateTime dateTime = LocalDateTime.of(2001, 5, 6, 12, 34, 56); Date sqlDate = Date.valueOf(dateTime.toLocalDate()); Time sqlTime = Time.valueOf(dateTime.toLocalTime()); Timestamp sqlTimestamp = Timestamp.valueOf(dateTime); java.util.Date javaDate = java.util.Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant()); assertParameter(sqlTimestamp, Types.TIMESTAMP, (ps, i) -> ps.setTimestamp(i, sqlTimestamp)); assertParameter(sqlTimestamp, Types.TIMESTAMP, (ps, i) -> ps.setObject(i, sqlTimestamp)); assertParameter(new Timestamp(sqlDate.getTime()), Types.TIMESTAMP, (ps, i) -> ps.setObject(i, sqlDate, Types.TIMESTAMP)); assertParameter(new Timestamp(sqlTime.getTime()), Types.TIMESTAMP, (ps, i) -> ps.setObject(i, sqlTime, Types.TIMESTAMP)); assertParameter(sqlTimestamp, Types.TIMESTAMP, (ps, i) -> ps.setObject(i, sqlTimestamp, Types.TIMESTAMP)); assertParameter(sqlTimestamp, Types.TIMESTAMP, (ps, i) -> ps.setObject(i, javaDate, Types.TIMESTAMP)); assertParameter(sqlTimestamp, Types.TIMESTAMP, (ps, i) -> ps.setObject(i, dateTime, Types.TIMESTAMP)); assertParameter(sqlTimestamp, Types.TIMESTAMP, (ps, i) -> ps.setObject(i, "2001-05-06 12:34:56", Types.TIMESTAMP)); }
@Test public void testConvertTime() throws SQLException { LocalTime time = LocalTime.of(12, 34, 56); Time sqlTime = Time.valueOf(time); java.util.Date javaDate = new java.util.Date(sqlTime.getTime()); LocalDateTime dateTime = LocalDateTime.of(LocalDate.of(2001, 5, 6), time); Timestamp sqlTimestamp = Timestamp.valueOf(dateTime); assertParameter(sqlTime, Types.TIME, (ps, i) -> ps.setTime(i, sqlTime)); assertParameter(sqlTime, Types.TIME, (ps, i) -> ps.setObject(i, sqlTime)); assertParameter(sqlTime, Types.TIME, (ps, i) -> ps.setObject(i, sqlTime, Types.TIME)); assertParameter(sqlTime, Types.TIME, (ps, i) -> ps.setObject(i, sqlTimestamp, Types.TIME)); assertParameter(sqlTime, Types.TIME, (ps, i) -> ps.setObject(i, javaDate, Types.TIME)); assertParameter(sqlTime, Types.TIME, (ps, i) -> ps.setObject(i, dateTime, Types.TIME)); assertParameter(sqlTime, Types.TIME, (ps, i) -> ps.setObject(i, "12:34:56", Types.TIME)); }
@Test public void testConvertDate() throws SQLException { LocalDate date = LocalDate.of(2001, 5, 6); Date sqlDate = Date.valueOf(date); java.util.Date javaDate = new java.util.Date(sqlDate.getTime()); LocalDateTime dateTime = LocalDateTime.of(date, LocalTime.of(12, 34, 56)); Timestamp sqlTimestamp = Timestamp.valueOf(dateTime); assertParameter(sqlDate, Types.DATE, (ps, i) -> ps.setDate(i, sqlDate)); assertParameter(sqlDate, Types.DATE, (ps, i) -> ps.setObject(i, sqlDate)); assertParameter(sqlDate, Types.DATE, (ps, i) -> ps.setObject(i, sqlDate, Types.DATE)); assertParameter(sqlDate, Types.DATE, (ps, i) -> ps.setObject(i, sqlTimestamp, Types.DATE)); assertParameter(sqlDate, Types.DATE, (ps, i) -> ps.setObject(i, javaDate, Types.DATE)); assertParameter(sqlDate, Types.DATE, (ps, i) -> ps.setObject(i, date, Types.DATE)); assertParameter(sqlDate, Types.DATE, (ps, i) -> ps.setObject(i, dateTime, Types.DATE)); assertParameter(sqlDate, Types.DATE, (ps, i) -> ps.setObject(i, "2001-05-06", Types.DATE)); }
@Test public void getTimestamp_Test() throws Exception { ValueMetaTimestamp v = new ValueMetaTimestamp( "TS" ); RowMetaInterface row = mock( RowMetaInterface.class ); doReturn( v ).when( row ).searchValueMeta( anyString() ); doReturn( 0 ).when( row ).indexOfValue( anyString() ); assertEquals( Timestamp.valueOf( "2018-07-23 12:40:55" ), new FieldHelper( row, "TS" ).getTimestamp( new Object[] { Timestamp.valueOf( "2018-07-23 12:40:55" ) } ) ); }
@Override protected void afterEntityManagerFactoryBuilt() { super.afterEntityManagerFactoryBuilt(); doInJPA( this::entityManagerFactory, entityManager -> { Event event = new Event(); event.setId( 1L ); event.setMessage( "ABC" ); event.setCreatedOn( Timestamp.valueOf( "9999-12-31 00:00:00" ) ); entityManager.persist( event ); } ); }