我正在使用sql进行数据库连接。我使用包含函数convert(varchar(100),column name,106)
的sql查询在日期基础上过滤数据库中的记录。我将它与具有dd/MMM/yyyy
格式的日期进行比较。结果我得到了下一个所有日期的记录。
示例:如果我尝试在2017年6月1日之前过滤该表,那么尽管有该日期的记录,我会得到下一个所有日期的记录。我无法获得2017年6月1日的记录。
我使用了大于或等于表达式。
答案 0 :(得分:0)
最好将其转换为此yyyymmdd数字格式并进行如下比较:
select convert(int,convert(varchar(10),[your column],112))
20170529
答案 1 :(得分:0)
进行比较时,请勿将日期转换为任何格式(=字符串)。始终使用日期(或日期时间等)格式。这样你就可以比较实际值,而不是字符串或数字比较。问题在于格式106是dd mon yyyy
因此它永远不会与您的日期匹配,因为它是一个字符串dd/MMM/yyyy
,但无论如何您将获得以02
开头的任何日期,例如{{1} },因为按字母顺序排列在你的指定日期之后。