gpt4 book ai didi

sql - MS SQL 仅日期而无时间

转载 作者:行者123 更新时间:2023-12-01 18:31:03 24 4
gpt4 key购买 nike

问题

大家好,

相当长一段时间以来,我一直对使用 T-SQL 构建 DateTime SQL 类型感到困惑。本质上,我想采用 DateTime 值(例如 2008-12-1 14:30:12)并将其设为 2008-12-1 00:00:00。我们为报告运行的许多查询都在 WHERE 子句中使用日期值,但我要么有一天的开始日期值和结束日期值并使用 BETWEEN,要么找到其他方法。

目前我正在使用以下内容:
WHERE CAST(CONVERT(VARCHAR, [tstamp], 102) AS DATETIME) = @dateParam

但是,这看起来有点笨拙。我希望有更简单的东西,比如CAST([tstamp] AS DATE)

网上有些地方建议使用 DATEPART() 函数,但最终我得到的是这样的结果:


WHERE DATEPART(year, [tstamp]) = DATEPART(year, @dateParam)
AND DATEPART(month, [tstamp]) = DATEPART(month, @dateParam)
AND DATEPART(day, [tstamp]) = DATEPART(day, @dateParam)

也许我过于关心一些小事,如果是这样,请告诉我。我只是想确保我正在写的东西尽可能高效。我想消除任何薄弱环节。

有什么建议吗?

谢谢,
C

解决方案

感谢大家的宝贵反馈。很多有用的信息。我将更改我们的函数以消除运算符左侧的函数。尽管我们的大多数日期列不使用索引,但这可能仍然是更好的做法。

最佳答案

如果您使用的是 SQL Server 2008,它现在已内置此功能,请参阅 books online

CAST(GETDATE() AS 日期)

关于sql - MS SQL 仅日期而无时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/467103/

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