Kik*_*oaw 2 sql vb.net sql-server
我在两个日期之间选择时遇到问题.我试图从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
Run Code Online (Sandbox Code Playgroud)
这是代码
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'
Run Code Online (Sandbox Code Playgroud)
样品日期来自a DateTimePicker1.Value.
显示的查询返回零结果,因为只有日期为真且时间为假.如您所见,数据库记录的开始时间为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'
Run Code Online (Sandbox Code Playgroud)
由于查询从03:59:23.000 AM开始,因此返回两行
这是结果
2018-07-16 07:59:23.000 AM
2018-07-16 07:59:23.000 AM
Run Code Online (Sandbox Code Playgroud)
我想要的是在两个日期之间获取数据并忽略时间.
小智 5
您需要将datetime转换为date
SELECT order_date FROM ORDER_RECORDS WHERE 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'AS DATE)
更新:
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)
Run Code Online (Sandbox Code Playgroud)
更新 - 日期时间比较
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |