如果条件在日期未显示等于日期 [英] Where condition on date not showing equals date

查看:72
本文介绍了如果条件在日期未显示等于日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的代码下面



这将显示日期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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆