@Override public java.sql.Date convertToPersisted(LocalDate value) { if (value == null) { return null; } return java.sql.Date.valueOf(value); }
ps.setDate(2, new java.sql.Date(System.currentTimeMillis())); // Since Java 8 ps.setDate(2, java.sql.Date.valueOf(java.time.LocalDate.now()));
public static Date getRandDate(Random r) { String dateStr = String.format("%d-%02d-%02d", Integer.valueOf(1800 + r.nextInt(500)), // year Integer.valueOf(1 + r.nextInt(12)), // month Integer.valueOf(1 + r.nextInt(28))); // day Date dateVal = Date.valueOf(dateStr); return dateVal; }
import java.sql.Date; import java.util.Calendar; import java.util.GregorianCalendar; public class DateTester { public static void main(String[] args) { Date date = Date.valueOf("2011-12-25"); System.out.println(date); Calendar cal = new GregorianCalendar(); cal.setTime(date); System.out.println(cal.getTime()); } }
public static Date castToDate(Object x, int targetSqlType) throws SQLException { if (x instanceof Date) { return (Date) x; } if (x instanceof java.util.Date) { return new Date(((java.util.Date) x).getTime()); } if (x instanceof LocalDate) { return Date.valueOf((LocalDate) x); } if (x instanceof LocalDateTime) { return Date.valueOf(((LocalDateTime) x).toLocalDate()); } try { if (x instanceof String) { return Date.valueOf((String) x); } } catch (RuntimeException e) { throw invalidConversion(x, targetSqlType, e); } throw invalidConversion(x, targetSqlType); }
@Override public Date convertToDatabaseColumn(LocalDate localDate) { return localDate == null ? null : Date.valueOf( localDate ); }
@Test(groups = {SQL_SERVER, PROFILE_SPECIFIC_TESTS}) public void testAllDatatypes() { String sql = format( "SELECT bi, si, i, ti, f, r, c, vc, te, nc, nvc, nt, d, dt, dt2, sdt, pf30, pf22 " + "FROM %s", ALL_TYPES_TABLE_NAME); QueryResult queryResult = onPresto() .executeQuery(sql); assertThat(queryResult) .hasColumns(BIGINT, SMALLINT, INTEGER, TINYINT, DOUBLE, REAL, CHAR, VARCHAR, VARCHAR, CHAR, VARCHAR, VARCHAR, DATE, TIMESTAMP, TIMESTAMP, TIMESTAMP, DOUBLE, REAL) .containsOnly( row(Long.MIN_VALUE, Short.MIN_VALUE, Integer.MIN_VALUE, Byte.MIN_VALUE, Double.MIN_VALUE, Float.valueOf("-3.40E+38"), "\0 ", "\0", "\0", "\0 ", "\0", "\0", Date.valueOf("0001-01-02"), Timestamp.valueOf("1753-01-01 00:00:00.000"), Timestamp.valueOf("0001-01-01 00:00:00.000"), Timestamp.valueOf("1900-01-01 00:00:00"), Double.MIN_VALUE, Float.valueOf("-3.40E+38")), row(Long.MAX_VALUE, Short.MAX_VALUE, Integer.MAX_VALUE, Byte.MAX_VALUE, Double.MAX_VALUE, Float.MAX_VALUE, "abcd", "abcdef", "abcd", "abcde", "abcdefg", "abcd", Date.valueOf("9999-12-31"), Timestamp.valueOf("9999-12-31 23:59:59.997"), Timestamp.valueOf("9999-12-31 23:59:59.999"), Timestamp.valueOf("2079-06-06 00:00:00"), Double.valueOf("12345678912.3456756"), Float.valueOf("12345678.6557")), row(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null)); }
@Override public int parseField(byte[] bytes, int startPos, int limit, byte[] delimiter, Date reusable) { final int endPos = nextStringEndPos(bytes, startPos, limit, delimiter); if (endPos < 0) { return -1; } if (endPos > startPos && (Character.isWhitespace(bytes[startPos]) || Character.isWhitespace(bytes[(endPos - 1)]))) { setErrorState(ParseErrorState.NUMERIC_VALUE_ILLEGAL_CHARACTER); return -1; } String str = new String(bytes, startPos, endPos - startPos, ConfigConstants.DEFAULT_CHARSET); try { this.result = Date.valueOf(str); return (endPos == limit) ? limit : endPos + delimiter.length; } catch (IllegalArgumentException e) { setErrorState(ParseErrorState.NUMERIC_VALUE_FORMAT_ERROR); return -1; } }
public static String getSmartDate(String date) { date = StringUtil.getTrimedString(date); try { return getSmartDate(java.sql.Date.valueOf(date)); } catch (Exception e) { } return date; } public static String getSmartDate(Date date) {
private static Date intToDate(Integer input) { if (input == null) { return null; } return Date.valueOf(LocalDate.ofEpochDay(input)); }
/** */ @Test public void testPassTableWithDateKeyCreation() { final String creationQry = "CREATE TABLE %s (id DATE primary key, dateField DATE) " + "WITH \"cache_name=%s, WRAP_VALUE=false\""; Map<java.sql.Date, java.sql.Date> ent = new HashMap<>(); ent.put(java.sql.Date.valueOf("2018-09-01"), java.sql.Date.valueOf("2018-09-02")); ent.put(java.sql.Date.valueOf("2018-09-03"), java.sql.Date.valueOf("2018-09-04")); checkInsertUpdateDelete(creationQry, "Tab1", ent); }
@Test(groups = {SQL_SERVER, PROFILE_SPECIFIC_TESTS}) public void testInsertMax() { String sql = format( "INSERT INTO %s.%s values (BIGINT '%s', SMALLINT '%s', INTEGER '%s', DOUBLE '%s', " + "CHAR 'aaaa', 'aaaaaa', DOUBLE '%s', DATE '%s' )", SQLSERVER, INSERT_TABLE_NAME, Long.MAX_VALUE, Short.MAX_VALUE, Integer.MAX_VALUE, Double.MAX_VALUE, Double.valueOf("12345678912.3456756"), Date.valueOf("9999-12-31")); onPresto().executeQuery(sql); sql = format( "SELECT * FROM %s.%s", MASTER, INSERT_TABLE_NAME); QueryResult queryResult = onSqlServer() .executeQuery(sql); assertThat(queryResult).contains( row(Long.MAX_VALUE, Short.MAX_VALUE, Integer.MAX_VALUE, Double.MAX_VALUE, "aaaa", "aaaaaa", Double.valueOf("12345678912.3456756"), Date.valueOf("9999-12-31"))); }
@Test(groups = FUNCTIONS) public void testToDate() { assertThat(onPresto().executeQuery("SELECT to_date('1988/04/01', 'yyyy/mm/dd')")) .contains(row(Date.valueOf("1988-04-01"))); assertThat(onPresto().executeQuery("SELECT to_date('1988/04/08', 'yyyy/mm/dd')")) .contains(row(Date.valueOf("1988-04-08"))); }
@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 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)); }
/** * Tests selection of an entity by a {@link LocalTime} field. */ @Test public void testSelectByAllFields() { SqlFieldsQuery qry = new SqlFieldsQuery( "select locDate from EntityWithDateTimeFields where locTime = ? and locDate = ? and locDateTime = ?" ).setArgs(entity.getLocalTime(), entity.getLocalDate(), entity.getLocalDateTime()); List<List<?>> qryResults = cache.query(qry).getAll(); assertEquals(1, qryResults.size()); assertEquals(Date.valueOf(entity.getLocalDate()), qryResults.get(0).get(0)); }