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

Edu*_*eni 1 mysql sql-server

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

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

SELECT concat( mid(DueDate, 7, 4), mid(DueDate, 4, 2), mid(DueDate, 1, 2)) as DueDate FROM TableName
Run Code Online (Sandbox Code Playgroud)

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

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

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

Dón*_*nal 11

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

一个示例用法是:

mysql> SELECT STR_TO_DATE('04/31/2004', '%m/%d/%Y');
        -> '2004-04-31'
Run Code Online (Sandbox Code Playgroud)

要在MySQL中获取当前日期,只需使用NOW()函数即可.然后,您可以使用类似的方法检查解析日期是否晚于今天

WHERE STR_TO_DATE('04/31/2009', '%m/%d/%Y') > NOW()
Run Code Online (Sandbox Code Playgroud)