java - QueryDSL DateTime 字段格式化投影

标签 java sql-server querydsl

我尝试使用 QueryDSL 进行返回日期时间字段的日期和时间部分的查询。

普通 SQL 中的查询如下所示:

select convert(varchar, FELectura, 103) as sDate,
       convert(varchar, FELectura, 108) as sTime
from dbo.T2_LecturaEstacionClima;

其中 FELectura 是日期时间字段,数据库是 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);

关于java - QueryDSL DateTime 字段格式化投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28548640/

相关文章:

sql-server - SQL Server 行编号和筛选结果

sql - 我是否需要按照声明的顺序使用多列 SQL Server 索引?

elasticsearch - elasticsearch中查询DSL中的must和filter有什么区别?

Java 方法重载最佳实践

java - 如何轮流组合2个双向链表

java - SAX 解析器。如何停止 SAX 解析器连接到 Internet?

sql-server - 如何将 LocalDB 添加到 Visual Studio 2015 Community 的 SQL Server 对象资源管理器?

java - 通过左连接表/Querydsl 上的 QBean 映射具有 null 属性的对象

java - QueryDSL 重复标识变量/相等语法错误与任何设置?

java - 是否有Java,Javascript,Python中用于日历计算的良好框架,可以从公历转换为希伯来语日历?