首页 > 解决方案 > SQL 获取晚于指定日期的日期

问题描述

我正在研究一个以人类可读格式存储日期列的数据库。这似乎使得计算给定日期晚于的行变得很棘手。

格式存储为2018 年 11 月 20 日

我正在尝试返回 collection_date 晚于2018 年 11 月 5 日的所有行

我尝试了以下引发错误的查询。

SELECT * 
FROM `orders` 
WHERE collection_date >= CONVERT(datetime, '20181105')

这会引发以下错误消息:

在此处输入图像描述

这是我的数据库信息:

在此处输入图像描述

更新 1:我正在尝试以下查询。到目前为止,以前的查询都没有工作,都产生了 0 行:

SELECT *
FROM `orders` 
WHERE STR_TO_DATE('collection_date', '%d %M, %Y') >= 2018-11-05

这也行不通

标签: mysqlsqldatetime

解决方案


在 MySQL 中,你想要STR_TO_DATE()

SELECT o.* 
FROM `orders` o
WHERE collection_date >= Str_To_Date(datetime, '%e %M, %Y');

CONVERT()使用此语法的是 SQL Server 函数。


推荐阅读