如何在SQL中创建今天晚上9点的时间

Con*_*rad 0 sql t-sql sql-server sql-server-2008

我想smalldatetime在查询中获得"今天晚上9点" 的值.我以为我可以用

DATEADD(HOUR, 21, CONVERT(date, GETDATE()))
Run Code Online (Sandbox Code Playgroud)

但SQL Server不喜欢这样 - 我收到了错误

数据类型日期的日期函数dateadd不支持datepart小时.

建议解决方法?

And*_*yev 5

很简单,只投datedatetime铸造后date.

因此,您将获得current_date 00:00:00,然后添加21小时:

select dateadd(hh, 21, cast(cast(getdate() as date) as datetime))
Run Code Online (Sandbox Code Playgroud)