如果条件在日期未显示等于日期 [英] Where condition on date not showing equals date
本文介绍了如果条件在日期未显示等于日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我的代码下面
这将显示日期08到18的记录,不提供'2017-02-19'记录
我尝试过:
SELECT * FROM Bill WHERE
B.Date> = CAST('2017-02-08 12:07:40.330'AS Date)
AND
B.Date< = CAST('2017-02-19 12:09:13.560'AS Date)
解决方案
不确定你的意图到底是什么。但如果你密切关注,
CAST('2017-02-19 12:09:13.560'AS Date)返回2017-02-19(默认为时间是
00:00:00.000)并且明确2017-02-19 00:00:00.000不大于或等于2017-02-19 12:09:13.560
这可能会成功。
SELECT * FROM 比尔b WHERE
B。[日期]> = CONVERT ( VARCHAR ( 120 ),' 2017-02-08 12:07:40.330', 120 )
AND
B。[日期]< = < span class =code-keyword> CONVERT ( VARCHAR ( 120 ),' 2017-02-19 12:09:13.560', 120 )
或
SELECT * FROM 比尔b WHERE
CAST(B。[日期] AS 日期) BETWEEN CAST(' 2017-02-08' AS 日期)
AND
CAST(' 2017-02-19' AS 日期跨度>)
in below my code
this will showing records of date 08 to 18, don't provide '2017-02-19' records
What I have tried:
SELECT * FROM Bill WHERE B.Date >= CAST('2017-02-08 12:07:40.330' AS Date) AND B.Date <= CAST('2017-02-19 12:09:13.560' AS Date)
解决方案
Not sure what exactly your intention yet. But if you pay close attention,
CAST('2017-02-19 12:09:13.560' AS Date) return 2017-02-19 (by default the time is
00:00:00.000) and clearly 2017-02-19 00:00:00.000 is not greater than or equal to 2017-02-19 12:09:13.560
This might do the trick.
SELECT * FROM Bill b WHERE B.[Date] >= CONVERT(VARCHAR(120), '2017-02-08 12:07:40.330', 120) AND B.[Date] <= CONVERT(VARCHAR(120), '2017-02-19 12:09:13.560', 120)
Or
SELECT * FROM Bill b WHERE CAST(B.[Date] AS Date) BETWEEN CAST('2017-02-08' AS Date) AND CAST('2017-02-19' AS Date)
这篇关于如果条件在日期未显示等于日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文