我解析包含条目的“在创建”饲料,格式如下:MySQL的日期时间字段
Thu, 08 Oct 2009 23:01:33 +0000
我需要能够以这些信息存储在一个MySQL表的日期时间数据类型。然后,我想选择行WHERE
datetime子句等于或在日期和/或时间之间的范围内。
我有两个问题:
- 将这个字符串可以接受作为MySQL的日期时间数据类型?
- 如果是,我应该构建哪个查询以获取日期或小时之间的结果?
我解析包含条目的“在创建”饲料,格式如下:MySQL的日期时间字段
Thu, 08 Oct 2009 23:01:33 +0000
我需要能够以这些信息存储在一个MySQL表的日期时间数据类型。然后,我想选择行WHERE
datetime子句等于或在日期和/或时间之间的范围内。
我有两个问题:
你可以做这些方针的东西(在你选择的语言),将您的字符串转换成可接受的MySQL的日期时间:
$inputdate = "Thu, 08 Oct 2009 23:01:33 +0000";
$unixdate = strtotime($inputdate); //output: 1255042893
$datetime = date("Y-m-d H:i:s", $unixdate); //output: 2009-10-08 23:01:33
有两种方法可以在两个日期之间找到记录,这是我的最爱:
SELECT * FROM table WHERE date >= '2009-07-01 00:00:00' and date <= '2009-10-31 23:59:59'
Delilah, 感谢您的回答 我按照您的指示,并从某些原因我得到 “2009 -10-31 01:01:33“而不是 ”2009-10-31 23:01:33“ 有什么想法为什么? – 2009-10-09 00:07:24
嗯..假设你的日期()格式和日期本身的来源都是正确的,接下来我要看的是时区的滑稽。如果还没有,请尝试在文件开头定义时区,如下所示: date_default_timezone_set(“GMT”); – Zoe 2009-10-09 00:29:35
是真的!没有很好的作品 谢谢 – 2009-10-09 00:38:31
MySQL将在下面的格式
YYYY-MM-DD HH:MM:SS
SELECT * FROM tbl WHERE datestamp = '2009-10-08 23:01:33';
http://dev.mysql.com/doc/refman/5.1/zh/date-and-time-functions.html – Littlejon 2009-10-08 23:25:20
select * from table where date1 between date2 and date3;
你可以找到在MySQL日期解析STR_TO_DATE功能有用接受一个字符串作为date。
mysql> SELECT STR_TO_DATE('Thu, 08 Oct 2009 23:01:33 +0000', '%a, %d %b %Y %H:%i:%s +0000');
-> '2009-10-08 23:01:33'
可用格式是一样的DATE_FORMAT
如果您使用的是PHP,那么我认为您可以使用strtotime()转换为时间戳,然后转换为mysql数据时间格式。 – 2009-10-08 23:20:01