SQL查询中的Varchar日期

时间:2014-03-11 13:54:07

标签: mysql sql date where-clause

我有一个名为date_submitted的varchar列,它的格式如下:

03-06-2014 4:32 pm

02-14-2014 2:44 am

等等......

我想知道如何从某个日期或20天前的某个日期获得所有日期。这个选择语句与我需要的一致。

SELECT date_submitted FROM myTable WHERE date_submitted < 02-14-2014 12:00 am

3 个答案:

答案 0 :(得分:2)

使用DATE_SUB

尝试此操作
  SELECT date_submitted 
  FROM myTable 
  WHERE STR_TO_DATE(date_submitted, '%m-%d-%Y') > DATE_SUB(DATE_FORMAT((NOW(),'%m-%d-%Y'), INTERVAL 20 DAY)

答案 1 :(得分:1)

您需要适当地CONVERT日期时间列,如下所示:

SELECT date_submitted FROM myTable 
WHERE convert(datetime,date_submitted,100) < DATE_SUB(convert(datetime,'02-14-2014 12:00 am',100), INTERVAL 20 DAY)

答案 2 :(得分:0)

你需要这样的东西,否则你将比较一个字符串和一个日期,你赢了;得到好结果

SELECT date_submitted 
FROM myTable 
WHERE 
date_format(str_to_date(date_submitted,'%m-%d-%Y %h:%i %p'), '%Y-%m-%d %H:%i:%s')
>DATE_SUB(NOW(), INTERVAL 20 DAY);