mysql日期时间字段

mysql日期时间字段,sql,mysql,datetime,Sql,Mysql,Datetime,我正在解析包含“created at”条目的提要,其格式如下: Thu, 08 Oct 2009 23:01:33 +0000 我需要能够以DateTime数据类型将其存储在MySQL表中。然后,我想选择行WHEREdatetime子句等于或在日期和/或时间之间 我有两个问题: 此字符串是否可以作为MySQL日期时间数据类型接受 如果是,我应该构造哪个查询来从日期或小时之间获取结果 MySQL将接受以下格式的字符串作为 YYYY-MM-DD HH:MM:SS SELECT * FROM tb

我正在解析包含“created at”条目的提要,其格式如下:

Thu, 08 Oct 2009 23:01:33 +0000
我需要能够以DateTime数据类型将其存储在MySQL表中。然后,我想选择行
WHERE
datetime子句等于或在日期和/或时间之间

我有两个问题:

  • 此字符串是否可以作为MySQL日期时间数据类型接受
  • 如果是,我应该构造哪个查询来从日期或小时之间获取结果

  • MySQL将接受以下格式的字符串作为

    YYYY-MM-DD HH:MM:SS
    
    SELECT * FROM tbl WHERE datestamp = '2009-10-08 23:01:33';
    

    MySQL将接受以下格式的字符串作为

    YYYY-MM-DD HH:MM:SS
    
    SELECT * FROM tbl WHERE datestamp = '2009-10-08 23:01:33';
    
    您可以在mysql中找到用于日期解析的函数

    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'
    
    可用格式与

    相同,您可以在mysql中找到用于日期解析的函数

    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'
    

    可用的格式与

    相同,您可以按照以下方式(使用您选择的语言)将字符串转换为可接受的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'
    

    SELECT*FROM table WHERE date>='2009-07-01 00:00:00'和date您可以按照以下方式(使用您选择的语言)将字符串转换为可接受的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'
    

    SELECT*FROM table WHERE date>='2009-07-01 00:00:00'和date如果您使用php,那么我认为您可以使用strottime()转换为时间戳,然后转换为mysql数据时间格式。如果您使用php,那么我认为您可以使用strottime()转换为时间戳,然后转换为mysql数据时间格式。Delilah,谢谢你的回答,我听从了你的指示,出于某种原因,我得到的是“2009-10-31 01:01:33”而不是“2009-10-31 23:01:33”,你知道为什么吗?嗯。。假设您的date()格式和日期本身的来源都是正确的,接下来我要看的是时区的趣味性。如果还没有,请尝试在文件开头定义时区,如:date\u default\u timezone\u set(“GMT”);黛利拉,谢谢你的回答我按照你的指示做了,出于某种原因我得到了“2009-10-31 01:01:33”而不是“2009-10-31 23:01:33”你知道为什么吗?嗯。。假设您的date()格式和日期本身的来源都是正确的,接下来我要看的是时区的趣味性。如果还没有,请尝试在文件开头定义时区,如:date\u default\u timezone\u set(“GMT”);