我是SQL的新手,我有一个病人表列表,现在我需要根据日期获取病人,因此我在列中带有date_column
。但是date_column
为字符串格式,我无法获取某些日期之间的值范围。这是我尝试过的
SELECT *
FROM Patients
WHERE date_column >= '2018-01-01'
AND date_column <= '2019-01-01';
但是问题是我的日期字符串像这样的Mon Jan 01 00:00:00 GMT 2018
,所以得到的结果是意外的和错误的行。
即使我尝试过
STR_TO_Date
将字符串转换为日期格式,但是我没有找到高于日期格式的格式。
所以请有人帮助我
答案 0 :(得分:1)
请考虑以下内容:
SELECT STR_TO_DATE(REPLACE('Mon Jan 01 00:00:00 GMT 2018','GMT',''),'%a %b %d %H:%i:%s %Y')x;
+---------------------+
| x |
+---------------------+
| 2018-01-01 00:00:00 |
+---------------------+
或
SELECT STR_TO_DATE('Mon Jan 01 00:00:00 GMT 2018','%a %b %d %H:%i:%s GMT %Y')x;
+---------------------+
| x |
+---------------------+
| 2018-01-01 00:00:00 |
+---------------------+
现在修复您的架构!