如何在SQL中将当前日期显示为截止于3:00:00AM的当前日期
我有一个任务,我需要将当前日期时间显示为当前日期凌晨3:00:00结束。例如,GETDATE在执行时返回当前日期时间。我需要显示为2019年9月5日凌晨3:00:00。下面是我的代码:如何在SQL中将当前日期显示为截止于3:00:00AM的当前日期,sql,sql-server,Sql,Sql Server,我有一个任务,我需要将当前日期时间显示为当前日期凌晨3:00:00结束。例如,GETDATE在执行时返回当前日期时间。我需要显示为2019年9月5日凌晨3:00:00。下面是我的代码: DECLARE @END_SHIFT AS DATETIME SET @END_SHIFT = '06:00:00 AM' SELECT NUMBER_ID, GETDATE() AS CURRENT_DT, GETDATE() - @END_SHIFT AS END_SHIFT_
DECLARE @END_SHIFT AS DATETIME
SET @END_SHIFT = '06:00:00 AM'
SELECT
NUMBER_ID,
GETDATE() AS CURRENT_DT,
GETDATE() - @END_SHIFT AS END_SHIFT_DATE
FROM table
运行此命令时,我的问题是它不会返回到凌晨3:00:00结束。请告诉我你的方向
谢谢,
H如果你真的需要一段艰难的时间,一个选择是使用格式 范例 返回
如果你真的需要一段时间,一个选择是使用格式 范例 返回
当然,这是一个有点奇怪的请求,但您可以简单地使用DATEADD
SELECT dateadd(hour, 3, convert(datetime, convert(date, getdate())))
当然,这是一个有点奇怪的请求,但您可以简单地使用DATEADD
SELECT dateadd(hour, 3, convert(datetime, convert(date, getdate())))
如果要存储一天中的时间,请使用时间类型,而不是日期时间。至于这个请求,至少可以说是不寻常的。GetDate是GetDate。为什么它要返回一些固定值?如果要使用固定值设置变量或将其存储在字段中,是否还要报告移动了3小时的时间,还是只报告日期?SQL Server非常适合显示数据库中的内容。开发完整的应用程序通常不首选它。最好的方法可能是从表中选择number_id、getdate作为当前_dt,并让应用程序(可能是web应用程序、Perl脚本、C控制台应用程序)显示它需要显示的内容。换句话说,我不确定您在这里是否有SQL问题。@Tim,需要的时间从当前日期和时间的凌晨3:00结束。如果要存储一天中的时间,请使用时间类型,而不是日期时间。至于这个请求,至少可以说是不寻常的。GetDate是GetDate。为什么它要返回一些固定值?如果要使用固定值设置变量或将其存储在字段中,是否还要报告移动了3小时的时间,还是只报告日期?SQL Server非常适合显示数据库中的内容。开发完整的应用程序通常不首选它。最好的方法可能是从表中选择number_id、getdate作为当前_dt,并让应用程序(可能是web应用程序、Perl脚本、C控制台应用程序)显示它需要显示的内容。换句话说,我不确定您在这里是否有SQL问题。@Tim,需要从当前日期和时间的凌晨3:00结束时间。但这不是日期时间;这是一根绳子但这不是约会时间;这是一根绳子
SELECT dateadd(hour, 3, convert(datetime, convert(date, getdate())))