Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL获取日期晚于指定日期_Mysql_Sql_Datetime - Fatal编程技术网

Mysql SQL获取日期晚于指定日期

Mysql SQL获取日期晚于指定日期,mysql,sql,datetime,Mysql,Sql,Datetime,我正在开发一个数据库,它以人类可读的格式存储日期列。这似乎使得计算出给定日期晚于指定日期的行变得很困难 格式存储方式为2018年11月20日 我正在尝试返回收集日期晚于2018年11月5日的所有行 我尝试了以下抛出错误的查询 SELECT * FROM `orders` WHERE collection_date >= CONVERT(datetime, '20181105') 这将抛出以下错误消息: 以下是我的数据库信息: 更新1: 我正在尝试以下查询。到目前为止,前面的查询均

我正在开发一个数据库,它以人类可读的格式存储日期列。这似乎使得计算出给定日期晚于指定日期的行变得很困难

格式存储方式为2018年11月20日

我正在尝试返回收集日期晚于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
这在MySQL中也不起作用,您需要:


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

该值在函数中位于第一位


您可以使用
STR\u TO\u DATE()
函数尝试此操作

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

这个问题对我很有用:

SELECT *
FROM orders 
WHERE STR_TO_DATE(collection_date, '%d %M, %Y') >= '2018-11-05'  
AND collection_time = '4:00 PM'  
ORDER BY `orders`.`collection_date`  DESC

实际上。。。您必须在
collection\u DATE
列上应用
STR\u to\u DATE
,因为这是人类可读的日期所在。至于输入日期,只需以
yyyy-mm-dd
格式指定即可:

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

您可以省去很多麻烦,只需将日期存储为日期。
Convert
是T-SQL的一个函数(所以SQL Server),对于MySql使用“Convert是T-SQL的一个函数(所以SQL Server),对于MySql使用”@ZoharPeled MySql还支持字符集之间的转换和类型之间的强制转换。@RaymondNijland感谢您提供的信息,我不知道。我主要使用SQL Server。
str\u to\u dateime
。。。新函数?“CONVERT()是SQL Server函数。”MySQL还支持字符集之间的CONVERT-to-CONVERT和字符集之间的casttypes@RaymondNijland . . . 当然,你是对的。我专注于特定的语法。
SELECT *
FROM `orders` 
WHERE STR_TO_DATE(collection_date, '%e  %M, %Y') >= '2018-11-05'