MySQL:当日期在字符串中时,如何要求比今天更大的日期

时间:2008-11-21 19:05:10

标签: mysql sql-server

我尝试将MySQL数据库中的信息提取到MS SQL DB中。数据库很乱,开发人员不再可用。

所有日期都在字段中,我使用

SELECT concat( mid(DueDate, 7, 4), mid(DueDate, 4, 2), mid(DueDate, 1, 2)) as DueDate FROM TableName

以格式获取日期字段,以便MS sql server可以导入它们。

现在,我想只导出日期大于今天的记录,所以问题是:

  • MySQL中的GetDate()相当于什么?
  • 是否有更好的方式来投射日期进行比较?

2 个答案:

答案 0 :(得分:11)

在MySQL中,您可以使用STR_TO_DATE函数将字符串转换为日期。

示例用法是:

mysql> SELECT STR_TO_DATE('04/31/2004', '%m/%d/%Y');
        -> '2004-04-31'

要在MySQL中获取当前日期,只需使用NOW()函数即可。然后,您可以使用

之类的内容检查解析日期是否晚于今天
WHERE STR_TO_DATE('04/31/2009', '%m/%d/%Y') > NOW()

答案 1 :(得分:1)

与getdate()等效的MySQL是CURDATE()


mysql> select IF(CURDATE()<NOW(), 1, 0);
+---------------------------+
| IF(CURDATE()<NOW(), 1, 0) |
+---------------------------+
|                         1 | 
+---------------------------+
1 row in set (0.00 sec)

mysql> select IF(CURDATE()=NOW(), 1, 0);                                                                            +---------------------------+
| IF(CURDATE()=NOW(), 1, 0) |
+---------------------------+
|                         0 | 
+---------------------------+
1 row in set (0.00 sec)