mysql - 在 MySQL 中获取两个日期字符串之间的数据

标签 mysql sql date between

我一直在为我正在处理的项目记录 Twitter 数据,日期信息在字符串字段中保存为 Thu, 14 Jul 2011 06:21:48 +0000

如何使用 mySQL 选择介于两个日期之间的数据?我可以获得大于某个值或小于某个值但不能介于两个值之间的数据。

例如数据是:

Thu, 14 Jul 2011 06:21:48 +0000
Thu, 14 Jul 2011 12:18:21 +0000
Thu, 14 Jul 2011 18:48:00 +0000
Thu, 14 Jul 2011 23:48:02 +0000
Fri, 15 Jul 2011 06:48:10 +0000
Fri, 15 Jul 2011 12:48:00 +0000
Fri, 15 Jul 2011 18:43:32 +0000
Fri, 15 Jul 2011 23:44:08 +0000
Sat, 16 Jul 2011 06:47:08 +0000
Sat, 16 Jul 2011 12:46:49 +0000
Sat, 16 Jul 2011 18:45:41 +0000
Sat, 16 Jul 2011 23:41:27 +0000

我的 SQL 字符串是:

SELECT * 
FROM twitter 
WHERE SUBSTR(twitter_date, 6, 11) >= '2011-06-15' 
AND SUBSTR(twitter_date, 6, 11) <= '2011-06-21'

我也尝试过 BETWEEN 语句,但没有成功。

任何帮助将不胜感激!

最佳答案

不能使用 between 因为它们是字符串而不是实际的日期字段。如果您知道日期的格式将始终相同,则可以执行以下操作: STR_TO_DATE(str,format)

SELECT * 
FROM twitter 
WHERE STR_TO_DATE(twitter_date, '%a, %c %b %Y %k:%i:%s') 
      between '2011-06-15' AND '2011-06-21'

关于mysql - 在 MySQL 中获取两个日期字符串之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6818495/

相关文章:

C# 使用 linq VS OleDB 连接到 mysql

sql - MS Access - 对同名列执行 "full join"的替代方法

java - 关于日期格式

java - 使用java更改系统时间时如何更新保存在数据库中的日期

android - 为什么保存日期的当前年份为3912?

MySQL 工作台 : trying to create a boolean field for a table

mysql - 仅将带有时间的字符串转换为日期

mysql - InnoDb 表更新时使 MySql 崩溃

MySQL - 如何使用分页从两个表中获取所有记录?

mysql - 将 SQL 查询转换为 Rails