English 中文(简体)
MySQL:当日期在字符串内时,如何请求大于今天的日期
原标题:
  • 时间:2008-11-21 19:05:10
  •  标签:

我正在尝试从MySQL数据库中提取信息到MS SQL数据库中。该数据库很混乱,开发人员已不再可用。

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

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

以一种 MS SQL Server 可以导入的格式获取日期字段。

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

  • What is the equivalent of GetDate() in MySQL?
  • Is there a better way to cast the date to make the comparison?
最佳回答

在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()
问题回答

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)





相关问题
热门标签