比较日期和获得具有更多日期的记录的结果

时间:2017-05-29 14:58:05

标签: sql sql-server

我正在使用sql进行数据库连接。我使用包含函数convert(varchar(100),column name,106)的sql查询在日期基础上过滤数据库中的记录。我将它与具有dd/MMM/yyyy格式的日期进行比较。结果我得到了下一个所有日期的记录。

示例:如果我尝试在2017年6月1日之前过滤该表,那么尽管有该日期的记录,我会得到下一个所有日期的记录。我无法获得2017年6月1日的记录。

我使用了大于或等于表达式。

2 个答案:

答案 0 :(得分:0)

最好将其转换为此yyyymmdd数字格式并进行如下比较:

select convert(int,convert(varchar(10),[your column],112))

20170529

答案 1 :(得分:0)

进行比较时,请勿将日期转换为任何格式(=字符串)。始终使用日期(或日期时间等)格式。这样你就可以比较实际值,而不是字符串或数字比较。问题在于格式106是dd mon yyyy因此它永远不会与您的日期匹配,因为它是一个字符串dd/MMM/yyyy,但无论如何您将获得以02开头的任何日期,例如{{1} },因为按字母顺序排列在你的指定日期之后。