gpt4 book ai didi

sql-server - 比较sql中日期时间值的时间部分

转载 作者:行者123 更新时间:2023-12-04 02:49:58 25 4
gpt4 key购买 nike

如何只比较sql中日期时间值的时间部分。

我用以下方法试过了,

 DECLARE @t1  smalldatetime
SET @t1=CAST('1900-01-01 '+CONVERT(varchar(8),@saledate,108) As smalldatetime)
--------------------------------------------------------------------------------

SELECT Model FROM Sales WHERE @t1 between WorkStart and WorkEnd And Ctrl=@key

'WorkStart' 和 'WorkEnd' 是一个 DateTime 字段,日期部分总是包含 '1900-01-01'。

并且参数@saledate 是一个日期时间,我如何只比较时间部分而不考虑@saledate、workstart 和workend 的日期部分。

该表已经使用 DateTime 字段创建了 WorkStart 和 WorkEnd,我无法修改当前正在使用的字段数据类型。

最佳答案

如果您使用 SQL Server 2008 或更新版本,您可以转换为 TIME 数据类型来比较时间部分。

SELECT Model 
FROM Sales
WHERE
CAST(@saledate AS time) BETWEEN CAST(WorkStart AS time) AND CAST(WorkEnd AS time)
AND Ctrl = @key

如果您经常这样做,将您的时间作为 TIME 而不是 DATETIME 存储到数据库列中会更高效。

关于sql-server - 比较sql中日期时间值的时间部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17990579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com