2015-02-16 2 views
2

Я пытаюсь выполнить запрос, который возвращает дату и время в поле Datetime с помощью QueryDSL.QueryDSL DateTime форматирование поля

Запрос в простой 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?

ответ

2

Если вы используете 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); 

И доступ к столбцам из экземпляра кортежа

String date = tuple.get(dateExpr); 
String time = tuple.get(timeExpr); 
Смежные вопросы