如何在mysql中将日期与非日期类型字段进行比较

时间:2010-11-21 17:57:26

标签: sql mysql

我的查询如下:

select id,
       date 
  from table 
 where date < '1/31/2015' && date > '11/31/2011'

3 个答案:

答案 0 :(得分:3)

如果您将日期作为字符串提供,则某些格式将隐式/自动转换为要比较的列的正确数据类型。 IE:

SELECT t.id,
       t.date
  FROM TABLE t
 WHERE t.date < '2015-01-31'
   AND t.date > '2011-11-31'

将字符串中的日期/时间转换为DATETIME最安全的方法是使用MySQL's STR_TO_DATE function

 WHERE t.date < STR_TO_DATE('1/31/2015', '%m/%d/%Y')
   AND t.date > STR_TO_DATE('11/31/2011', '%m/%d/%Y')

答案 1 :(得分:2)

MySQL DATEDATETIME字段的格式为YYYY-MM-DD HH:MM:SS。如果您没有使用处理日期的内置数据类型,那么您将遇到更多麻烦。

答案 2 :(得分:2)

首先,&amp;&amp;不是SQL中的“和”运算符;使用AND。

其次,MySQL日期始终是ISO-8601。我建议你阅读标准或查看一些例子。

第三,您可以使用SQL函数BETWEEN来查找范围中的值。

我建议阅读

a)MySQL文档

b)一些例子

c)为初学者学习SQL培训课程。