#sql-server-2008 #time #compare
#sql-server-2008 #время #Сравнить
Вопрос:
Мой вопрос в том, как извлечь время из datetime
поля и сравнить его с другим временем, извлеченным из GetDate()
функции?
Я использую SQL Server 2008.
Заранее спасибо!
Ответ №1:
SELECT CONVERT(TIME, GETDATE(), 101)
вы получите Time
from GETDATE()
. Вам нужно будет сохранить его в переменной, чтобы использовать при сравнении. Не элегантно, но это работает.
DECLARE @Time1 AS TIME(3)
DECLARE @Time2 AS TIME(3)
SELECT @Time1 = CONVERT(TIME, GETDATE(), 101)
SELECT @Time1;
SELECT @Time2 = CONVERT(TIME, DATEADD(MINUTE, 1, GETDATE()), 101);
SELECT @Time2;
SELECT DATEDIFF(SECOND, @Time1, @Time2)
Комментарии:
1. И я получаю эту ошибку: сообщение 243, уровень 16, состояние 1, тип строки 1 ВРЕМЯ не является определенным системным типом.
2. @Jordan Borisov — тогда либо вы ошибаетесь в версии своего сервера (
time
не существовало до версии 2008 года), либо для базы данных, в которой вы работаете, установлен более низкий уровень совместимости.3. Нет. Версия 2008, и база данных в порядке с уровнями совместимости.
4. @JordanBorisov: для меня отлично работает — на SQL Server 2008 R2 (но
TIME
наверняка был представлен в версии 2008)