小编tfe*_*k11的帖子

SQL Server 2000 - 使用 DATEADD 和 DATEDIFF 从日期时间列结果中剥离时间是否仍随时间返回结果?

我知道有几篇关于从日期时间列中剥离时间部分的帖子。并且每个人都建议 DATEADD 和 DATEDIFF 方法对性能来说是最好的,个人不应该采用将日期值转换为 varchar 的过程。所以我想使用下面的函数,但我不明白为什么我收到的结果仍然具有与其关联的时间值,尽管时间全为零?

提供更多关于为什么我想了解这个结果的信息。我有一个存储过程,我希望指定以下内容:

DECLARE @DateShippedBegin DATETIME
DECLARE @DateShippedEnd DATETIME
SET @DateShippedBegin = dateadd(dd, datediff(dd, 0, @DateShipped), 0)
SET @DateShippedEnd = dateadd(dd, datediff(dd, 0, @DateShipped) + 1, 0)

WHERE O.date_shipped >= @DateShippedBegin and O.date_shipped < @DateShippedEnd
Run Code Online (Sandbox Code Playgroud)

但是当我使用基本日期格式执行该程序时,我没有收到任何结果,因此我试图了解我的程序采用的最佳概念。

Select DATEADD(dd, DATEDIFF(dd, 0, Getdate()), 0) from orders where order_no = 
'1247401'
Run Code Online (Sandbox Code Playgroud)

起始日期值示例:

2017-05-010 08:40:18.287
Run Code Online (Sandbox Code Playgroud)

查询结果示例:

2017-05-10 00:00:00.000
Run Code Online (Sandbox Code Playgroud)

sql-server-2000 t-sql datetime

6
推荐指数
1
解决办法
2385
查看次数

标签 统计

datetime ×1

sql-server-2000 ×1

t-sql ×1