Вот моя таблица
T_idx T_Tag T_Date
1 x 2014-03-15 23:58:00.000
2 y 2014-03-15 23:57:00.000
. . .
.
. . .
.
555 xy 2014-03-15 5:10:00.000
Из приведенной выше таблицы я хочу видеть данные с 5:30 до 6:30 каждый день.
Не могли бы вы предложить мне запрос для получения данных.
2 ответа
В SQL Server 2005 это можно сделать так:
select * from mytable
where convert(datetime, convert(char(5), T_Date, 108)) >= '5:30'
and convert(datetime, convert(char(5), T_Date, 108)) <= '6:30'
В SQL Server 2008 и более поздних версиях вы можете просто привести его к типу данных time
:
select * from mytable
where convert(time, T_Date) >= '5:30'
and convert(time, T_Date) <= '6:30'
Попробуй это
SET @start_date = DATEADD(minutes,30,DATEADD(hour, 5, DATEDIFF(DAY, 2, GETDATE())))
SET @end_date = DATEADD(hour, -1, @start_date)
SELECT
T_idx, T_Tag
FROM
YourTable
WHERE
T_Date BETWEEN @start_date AND @end_date
Похожие вопросы
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.