mirror of
https://github.com/querydsl/querydsl.git
synced 2026-06-13 21:01:01 +08:00
Add mappings
This commit is contained in:
parent
ffb5fa1091
commit
f094e643a6
@ -74,6 +74,14 @@ public class CUBRIDTemplates extends SQLTemplates {
|
||||
add(Ops.DateTimeOps.ADD_MINUTES, "date_add({0}, interval {1s} minute)");
|
||||
add(Ops.DateTimeOps.ADD_SECONDS, "date_add({0}, interval {1s} second)");
|
||||
|
||||
add(Ops.DateTimeOps.TRUNC_YEAR, "trunc({0},'yyyy')");
|
||||
add(Ops.DateTimeOps.TRUNC_MONTH, "trunc({0},'mm')");
|
||||
add(Ops.DateTimeOps.TRUNC_WEEK, "trunc({0},'day')");
|
||||
add(Ops.DateTimeOps.TRUNC_DAY, "trunc({0},'dd')");
|
||||
add(Ops.DateTimeOps.TRUNC_HOUR, "timestamp(date({0}),concat(hour({0}),':00:00'))");
|
||||
add(Ops.DateTimeOps.TRUNC_MINUTE, "timestamp(date({0}),concat(hour({0}),':',minute({0}),':00'))");
|
||||
add(Ops.DateTimeOps.TRUNC_SECOND, "timestamp(date({0}),concat(hour({0}),':',minute({0}),':',second({0})))");
|
||||
|
||||
add(Ops.MathOps.LN, "ln({0})");
|
||||
add(Ops.MathOps.LOG, "(ln({0}) / ln({1}))");
|
||||
add(Ops.MathOps.COSH, "(exp({0}) + exp({0} * -1)) / 2");
|
||||
|
||||
@ -105,6 +105,15 @@ public class DerbyTemplates extends SQLTemplates {
|
||||
add(Ops.DateTimeOps.DIFF_MINUTES, "{fn timestampdiff(SQL_TSI_MINUTE, {0}, {1})}");
|
||||
add(Ops.DateTimeOps.DIFF_SECONDS, "{fn timestampdiff(SQL_TSI_SECOND, {0}, {1})}");
|
||||
|
||||
// yyyy-MM-dd hh:mm:ss
|
||||
add(Ops.DateTimeOps.TRUNC_YEAR, "timestamp(substr(cast({0} as char(30)),1,4)||'-01-01 00:00:00')");
|
||||
add(Ops.DateTimeOps.TRUNC_MONTH, "timestamp(substr(cast({0} as char(30)),1,7)||'-01 00:00:00')");
|
||||
// TODO weeks
|
||||
add(Ops.DateTimeOps.TRUNC_DAY, "timestamp(substr(cast({0} as char(30)),1,10)||' 00:00:00')");
|
||||
add(Ops.DateTimeOps.TRUNC_HOUR, "timestamp(substr(cast({0} as char(30)),1,13)||':00:00')");
|
||||
add(Ops.DateTimeOps.TRUNC_MINUTE, "timestamp(substr(cast({0} as char(30)),1,16)||':00')");
|
||||
add(Ops.DateTimeOps.TRUNC_SECOND, "timestamp(substr(cast({0} as char(30)),1,19))");
|
||||
|
||||
// left via substr
|
||||
add(Ops.StringOps.LEFT, "substr({0},1,{1})");
|
||||
|
||||
|
||||
@ -67,6 +67,14 @@ public class H2Templates extends SQLTemplates {
|
||||
addTypeNameToCode("uuid", Types.BINARY);
|
||||
addTypeNameToCode("serial", Types.INTEGER);
|
||||
addTypeNameToCode("varchar_ignorecase", Types.VARCHAR);
|
||||
|
||||
add(Ops.DateTimeOps.TRUNC_YEAR, "parsedatetime(formatdatetime({0},'yyyy'),'yyyy')");
|
||||
add(Ops.DateTimeOps.TRUNC_MONTH, "parsedatetime(formatdatetime({0},'yyyy-MM'),'yyyy-MM')");
|
||||
add(Ops.DateTimeOps.TRUNC_WEEK, "parsedatetime(formatdatetime({0},'YYYY-ww'),'YYYY-ww')");
|
||||
add(Ops.DateTimeOps.TRUNC_DAY, "parsedatetime(formatdatetime({0},'yyyy-MM-dd'),'yyyy-MM-dd')");
|
||||
add(Ops.DateTimeOps.TRUNC_HOUR, "parsedatetime(formatdatetime({0},'yyyy-MM-dd HH'),'yyyy-MM-dd HH')");
|
||||
add(Ops.DateTimeOps.TRUNC_MINUTE, "parsedatetime(formatdatetime({0},'yyyy-MM-dd HH:mm'),'yyyy-MM-dd HH:mm')");
|
||||
add(Ops.DateTimeOps.TRUNC_SECOND, "parsedatetime(formatdatetime({0},'yyyy-MM-dd HH:mm:ss'),'yyyy-MM-dd HH:mm:ss')");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -83,6 +83,14 @@ public class HSQLDBTemplates extends SQLTemplates {
|
||||
add(Ops.DateTimeOps.DIFF_MINUTES, "datediff('mi', {0}, {1})");
|
||||
add(Ops.DateTimeOps.DIFF_SECONDS, "datediff('ss', {0}, {1})");
|
||||
|
||||
add(Ops.DateTimeOps.TRUNC_YEAR, "trunc({0},'YY')");
|
||||
add(Ops.DateTimeOps.TRUNC_MONTH, "trunc({0},'MM')");
|
||||
add(Ops.DateTimeOps.TRUNC_WEEK, "trunc({0},'WW')");
|
||||
add(Ops.DateTimeOps.TRUNC_DAY, "trunc({0},'DD')");
|
||||
add(Ops.DateTimeOps.TRUNC_HOUR, "trunc({0},'HH')");
|
||||
add(Ops.DateTimeOps.TRUNC_MINUTE, "trunc({0},'MI')");
|
||||
add(Ops.DateTimeOps.TRUNC_SECOND, "trunc({0},'SS')");
|
||||
|
||||
add(Ops.DateTimeOps.DATE, "convert({0}, date)");
|
||||
|
||||
addTypeNameToCode("character", Types.CHAR, true);
|
||||
|
||||
@ -149,6 +149,14 @@ public class MySQLTemplates extends SQLTemplates {
|
||||
add(Ops.DateTimeOps.DIFF_MINUTES, "timestampdiff(minute,{0},{1})");
|
||||
add(Ops.DateTimeOps.DIFF_SECONDS, "timestampdiff(second,{0},{1})");
|
||||
|
||||
add(Ops.DateTimeOps.TRUNC_YEAR, "str_to_date(concat(date_format({0},'%Y'),'-1-1'),'%Y-%m-%d')");
|
||||
add(Ops.DateTimeOps.TRUNC_MONTH, "str_to_date(concat(date_format({0},'%Y-%m'),'-1'),'%Y-%m-%d')");
|
||||
add(Ops.DateTimeOps.TRUNC_WEEK, "str_to_date(concat(date_format({0},'%Y-%u'),'-2'),'%Y-%u-%w')");
|
||||
add(Ops.DateTimeOps.TRUNC_DAY, "str_to_date(date_format({0},'%Y-%m-%d'),'%Y-%m-%d')");
|
||||
add(Ops.DateTimeOps.TRUNC_HOUR, "str_to_date(date_format({0},'%Y-%m-%d %k'),'%Y-%m-%d %k')");
|
||||
add(Ops.DateTimeOps.TRUNC_MINUTE, "str_to_date(date_format({0},'%Y-%m-%d %k:%i'),'%Y-%m-%d %k:%i')");
|
||||
add(Ops.DateTimeOps.TRUNC_SECOND, "str_to_date(date_format({0},'%Y-%m-%d %k:%i:%s'),'%Y-%m-%d %k:%i:%s')");
|
||||
|
||||
addTypeNameToCode("bool", Types.BIT, true);
|
||||
addTypeNameToCode("tinyint unsigned", Types.TINYINT);
|
||||
addTypeNameToCode("bigint unsigned", Types.BIGINT);
|
||||
|
||||
@ -123,9 +123,18 @@ public class SQLServerTemplates extends SQLTemplates {
|
||||
add(Ops.DateTimeOps.DIFF_MINUTES, "datediff(minute,{0},{1})");
|
||||
add(Ops.DateTimeOps.DIFF_SECONDS, "datediff(second,{0},{1})");
|
||||
|
||||
add(Ops.DateTimeOps.TRUNC_YEAR, "CONVERT(DATETIME, CONVERT(VARCHAR(4), {0}, 120) + '-01-01')");
|
||||
add(Ops.DateTimeOps.TRUNC_MONTH, "CONVERT(DATETIME, CONVERT(VARCHAR(7), {0}, 120) + '-01')");
|
||||
// TODO week
|
||||
add(Ops.DateTimeOps.TRUNC_DAY, "CONVERT(DATETIME, CONVERT(VARCHAR(10), {0}, 120))");
|
||||
add(Ops.DateTimeOps.TRUNC_HOUR, "CONVERT(DATETIME, CONVERT(VARCHAR(13), {0}, 120) + ':00:00')");
|
||||
add(Ops.DateTimeOps.TRUNC_MINUTE, "CONVERT(DATETIME, CONVERT(VARCHAR(16), {0}, 120) + ':00')");
|
||||
add(Ops.DateTimeOps.TRUNC_SECOND, "CONVERT(DATETIME, CONVERT(VARCHAR(19), {0}, 120))");
|
||||
|
||||
add(Ops.DateTimeOps.DATE, "cast({0} as date)");
|
||||
add(Ops.DateTimeOps.CURRENT_DATE, "cast(getdate() as date)");
|
||||
|
||||
addTypeNameToCode("bit", Types.BOOLEAN, true);
|
||||
addTypeNameToCode("decimal", Types.DOUBLE, true);
|
||||
addTypeNameToCode("tinyint identity", Types.TINYINT);
|
||||
addTypeNameToCode("bigint identity", Types.BIGINT);
|
||||
|
||||
@ -103,7 +103,7 @@ public class TeradataTemplates extends SQLTemplates {
|
||||
add(Ops.DateTimeOps.TRUNC_MONTH, "trunc({0}, 'month')");
|
||||
add(Ops.DateTimeOps.TRUNC_WEEK, "trunc({0}, 'w')");
|
||||
add(Ops.DateTimeOps.TRUNC_DAY, "trunc({0}, 'dd')");
|
||||
add(Ops.DateTimeOps.TRUNC_HOUR, "trunc({0}, 'hh')");
|
||||
add(Ops.DateTimeOps.TRUNC_HOUR, "trunc({0}, 'hh24')");
|
||||
add(Ops.DateTimeOps.TRUNC_MINUTE, "trunc({0}, 'mi')");
|
||||
add(Ops.DateTimeOps.TRUNC_SECOND, "{0}"); // not truncated
|
||||
}
|
||||
|
||||
@ -482,7 +482,7 @@ public class SelectBase extends AbstractBaseTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@ExcludeIn({CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MYSQL, SQLITE, SQLSERVER, TERADATA}) // FIXME
|
||||
@ExcludeIn({DERBY, FIREBIRD, SQLITE, SQLSERVER}) // FIXME
|
||||
public void Date_Trunc() {
|
||||
DateTimeExpression<java.util.Date> expr = DateTimeExpression.currentTimestamp();
|
||||
|
||||
@ -501,7 +501,7 @@ public class SelectBase extends AbstractBaseTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@IncludeIn({DB2, ORACLE, POSTGRES, TERADATA})
|
||||
@ExcludeIn({FIREBIRD, SQLITE}) // FIXME
|
||||
public void Date_Trunc2() {
|
||||
DateTimeExpression<DateTime> expr = DateTimeExpression.currentTimestamp(DateTime.class);
|
||||
|
||||
@ -521,6 +521,13 @@ public class SelectBase extends AbstractBaseTest {
|
||||
DateTime toMinute = tuple.get(SQLExpressions.datetrunc(DatePart.minute, expr));
|
||||
DateTime toSecond = tuple.get(SQLExpressions.datetrunc(DatePart.second, expr));
|
||||
|
||||
assertEquals(date.getZone(), toYear.getZone());
|
||||
assertEquals(date.getZone(), toMonth.getZone());
|
||||
assertEquals(date.getZone(), toDay.getZone());
|
||||
assertEquals(date.getZone(), toHour.getZone());
|
||||
assertEquals(date.getZone(), toMinute.getZone());
|
||||
assertEquals(date.getZone(), toSecond.getZone());
|
||||
|
||||
// year
|
||||
assertEquals(date.getYear(), toYear.getYear());
|
||||
assertEquals(date.getYear(), toMonth.getYear());
|
||||
|
||||
Loading…
Reference in New Issue
Block a user