gpt4 book ai didi

sql - 如何在 SQL Server 中选择“正确使用 "between"”?

转载 作者:行者123 更新时间:2023-12-02 09:11:32 24 4
gpt4 key购买 nike

我在两个日期之间进行选择时遇到问题。我尝试从 SQL Server 数据库中选择数据,但结果不是我想要的。有人可以帮助我吗?

我有来自数据库的 4 条记录,全部格式为 GeneralDate

order_date
---------------------------
2018-07-17 07:10:40.000 AM
2018-07-17 07:10:40.000 AM
2018-07-16 07:59:23.000 AM
2018-07-16 07:59:23.000 AM

这是代码

SELECT order_date 
FROM ORDER_RECORDS
WHERE order_date >= '2018-07-16 08:59:23.000 AM'
AND order_date < '2018-07-16 08:59:23.000 AM'

示例日期来自 DateTimePicker1.Value

显示的查询返回零结果,因为只有日期为 true,时间为 false。如您所见,数据库记录的开始时间为 07:59:23.000 AM,获取数据的查询开始于 08:59:23.000 AM

另一个示例查询

SELECT order_date 
FROM ORDER_RECORDS
WHERE order_date >= '2018-07-16 03:59:23.000 AM'
AND order_date < '2018-07-16 08:59:23.000 AM'

返回两行结果,因为查询从 03:59:23.000 AM 开始

这是结果

2018-07-16 07:59:23.000 AM
2018-07-16 07:59:23.000 AM

我想要的是获取两个日期之间的数据并忽略时间。

最佳答案

您需要将日期时间转换为日期

从 ORDER_RECORDS 中选择 order_date,其中 order_date >= CAST('2018-07-16 08:59:23.000 AM' AS DATE) AND order_date < CAST('2018-07-16 08:59:23.000 AM'截至日期)

更新:

SELECT order_date 
FROM ORDER_RECORDS
WHERE CAST(order_date AS DATE) BETWEEN CAST('2018-07-16 08:59:23.000 AM' AS DATE)
AND CAST('2018-07-16 08:59:23.000 AM' AS DATE)

更新 - 日期时间比较

DECLARE
@StartDT DATETIME = CAST('2018-07-16 08:59:23.000 AM' AS DATE),
@EndDT DATETIME = DATEADD(DAY, 1, CAST('2018-07-16 08:59:23.000 AM' AS DATE))

SELECT order_date
FROM ORDER_RECORDS
WHERE order_date >= @StartDT AND order_date < @EndDT

关于sql - 如何在 SQL Server 中选择“正确使用 "between"”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51470422/

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