我正在尝试编写一个自动化代码,我想使用当前日期,但时间必须是特定的。
SELECT
col_name
FROM
table
WHERE
CONVERT(DATE, start_datetime) = CONVERT(date, GETUTCDATE())
我如何提及具体时间?
答案 0 :(得分:0)
问题将归结为你想要的准确程度。例如在特定时刻?在x#分钟内?秒.... ????
有很多方法可以回答这个问题。
第一个问题是你的start_datetime存储在哪个时区?因为如果你的start_date也不是UTC,你可能不想使用UTC日期!如果不是utc你的服务器设置的时区,GETDATE()和start_datetime是否在同一个区域?
在特定时间内今天的任何时间。
SELECT
col_name
FROM
table
WHERE
CONVERT(DATE, start_datetime) = CONVERT(date, GETUTCDATE())
AND HOUR(start_datetime) = 5
今天在特定时刻和分钟的任何时间
SELECT
col_name
FROM
table
WHERE
CONVERT(DATE, start_datetime) = CONVERT(date, GETUTCDATE())
AND DATEPRT(HOUR,start_datetime) = 5
AND DATEPART(MINUTE,start_datetime) = 15
OR
SELECT
col_name
FROM
table
WHERE
start_datetime = CAST(CAST(GETUTCDATE() AS DATE) AS DATETIME) + CAST('05:15' AS DATETIME)
OR
SELECT
col_name
FROM
table
WHERE
start_datetime = CONVERT(DATETIME,(CONVERT(VARCHAR(10),GETUTCDATE(),120) + ' 19:15'))
对于秒,您可以使用与小时/分钟基本相同的技术,只为您要转换的字符串添加一秒或
在特定时间之后,只需将=切换为>