QueryDSL DateTime 字段格式化投影
QueryDSL DateTime field formatted projection
我正在尝试使用 QueryDSL 查询 returns 日期时间字段的日期和时间部分。
普通 SQL 中的查询如下所示:
select convert(varchar, FELectura, 103) as sDate,
convert(varchar, FELectura, 108) as sTime
from dbo.T2_LecturaEstacionClima;
其中 FELectura 是 DateTime 字段,数据库是 SQL Server 2012。
此查询给出以下输出:
sDate sTime
------------------------------ ------------------------------
02/01/2012 00:00:00
02/01/2012 01:00:00
02/01/2012 02:00:00
02/01/2012 03:00:00
02/01/2012 08:00:00
02/01/2012 09:00:00
02/01/2012 10:00:00
如何使用 QueryDSL 实现相同的输出?
如果你使用 Querydsl SQL 这应该有效
Expression<String> dateExpr = Expressions.stringTemplate("convert(varchar, {0}, 103)", table.feLecutra);
Expression<String> timeExpr = Expressions.stringTemplate("convert(varchar, {0}, 108)", table.feLectura);
List<Tuple> results = query.from(table).list(dateExpr, timeExpr);
并从 Tuple 实例访问列
String date = tuple.get(dateExpr);
String time = tuple.get(timeExpr);
我正在尝试使用 QueryDSL 查询 returns 日期时间字段的日期和时间部分。
普通 SQL 中的查询如下所示:
select convert(varchar, FELectura, 103) as sDate,
convert(varchar, FELectura, 108) as sTime
from dbo.T2_LecturaEstacionClima;
其中 FELectura 是 DateTime 字段,数据库是 SQL Server 2012。
此查询给出以下输出:
sDate sTime
------------------------------ ------------------------------
02/01/2012 00:00:00
02/01/2012 01:00:00
02/01/2012 02:00:00
02/01/2012 03:00:00
02/01/2012 08:00:00
02/01/2012 09:00:00
02/01/2012 10:00:00
如何使用 QueryDSL 实现相同的输出?
如果你使用 Querydsl SQL 这应该有效
Expression<String> dateExpr = Expressions.stringTemplate("convert(varchar, {0}, 103)", table.feLecutra);
Expression<String> timeExpr = Expressions.stringTemplate("convert(varchar, {0}, 108)", table.feLectura);
List<Tuple> results = query.from(table).list(dateExpr, timeExpr);
并从 Tuple 实例访问列
String date = tuple.get(dateExpr);
String time = tuple.get(timeExpr);