我有一个行代码SELECT语句 - 日期条件
string datenow = DateTime.Now.ToString("dd'/'MM'/'yyyy");
"SELECT * from trialevent where date <= '"+datenow+"'";
例如,datenow是2016年12月2日
"SELECT * from trialevent where date <= '12/02/2016'";
这意味着我想数据,其中日期之后或等于12/02/2016,但我不断收到这个
trialevent | date
38 | 10/02/2016
39 | 11/02/2016
40 | 11/02/2016
41 | 12/02/2016
这里的东西,我不希望2016年10月2日和2016年11月2日。 我有一个专栏24/02/2016没有显示。
什么数据类型是你的'date'列?你使用的是什么DBMS? (它很重要;存在语法差异。)您使用哪种语言编写代码?如果它是支持它们的语言,并且该列实际上是DATE或DATETIME类型的,则需要立即停止连接SQL并开始使用参数化查询,在这种情况下,您也可以停止使用ToString()并让数据库驱动程序执行正确的转换。 –
我使用日期列的varchar –
为什么?如果是DATE,为什么要使用VARCHAR?这正是你的WHERE不工作的原因。在字符串排序中,'24/02/2016'大于'12/02/2016'(因为'24'大于'12'),因此它应该**在您得到的匹配中。如果您使用了适当的数据类型,则可以在需要时找到所需的数据。 –