如何使用 PHP 为 MySQL DATETIME 类型生成日期?

Posted

技术标签:

【中文标题】如何使用 PHP 为 MySQL DATETIME 类型生成日期?【英文标题】:How to generate date for MySQL DATETIME type with PHP? 【发布时间】:2012-03-18 09:51:51 【问题描述】:

我需要获取过去 24 小时内插入的记录。我已经阅读了它并且知道我需要在我的 mysql 日期列中使用 DATETIME 类型。 但我的问题是我不知道如何使用 php 为 MySQL DATETIME 类型生成日期? 我怎样才能做到这一点?提前致谢。

【问题讨论】:

鉴于您提到了 DATETIME 类型,重要的是要注意 MySQL 只存储特殊格式的字符串。因此,您创建了一个格式为 YYYY-MM-DD HH:ii:ss 的 PHP 字符串,一切顺利。是的,我意识到这个问题已经有好几年了,但我认为未来的读者会在这里使用包含“DATETIME 类型”的搜索词并发现此信息很有用。 【参考方案1】:

简单

$mysql_date_now = date("Y-m-d H:i:s");

因为mysql中的DATETIMEYYYY-MM-DD HH:ii:ss

【讨论】:

【参考方案2】:

如果您只是在寻找一种方法来生成要插入到日期时间字段中的日期时间,只需使用以下代码

$datetime = date('Y-m-d H:i:s') ;

或者直接sql

INSERT INTO TABLE (DATETIME) VALUES (NOW())

这将创建一个看起来像这样的日期

2012-02-28 16:44:25

如果您正在查找查询以获取最近 24 小时的使用情况

SELECT * FROM tablename WHERE date_field > NOW() - interval 1 day

【讨论】:

我只想在此处添加此内容-我相信如果您使用sql now() 函数,它将根据服务器的位置而不是您的位置来创建时间。如果服务器位于具有不同时区的另一个国家或地区,它将使用服务器所在的时区而不是您自己的时区。 James111:这取决于您的服务器时区。如果您的服务器时区可以设置为您当前的位置,那就没问题了。【参考方案3】:

有两种方法:

    使用文本表示 - 例如:

    <?php
        $year=2012; $month=2; $day=27;
        $hour=22; $minute=44; $second=58;
    
        $sql="SELECT something FROM something WHERE datecolumn>='$year-$month-$day $hour:$minute:$second'";
    ?>
    

    直接在 SQL 中执行此操作

    SELECT something FROM something WHERE datecolumn >= DATE_SUB(NOW(), INTERVAL 1 DAY);
    

【讨论】:

不知道小编为什么坚持把这个1.和1.编号,应该是1.和2.【参考方案4】:

我会更改 MySQL 数据库来完成一半的工作,除非您不喜欢服务器上的时间。 名称:dateSomething 类型:时间戳 默认值:CURRENT_TIMESTAMP

然后是 SQL 代码

INSERT INTO TABLE (dateSomething) VALUES (DEFAULT)

【讨论】:

以上是关于如何使用 PHP 为 MySQL DATETIME 类型生成日期?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 脚本将 DateTime.Ticks 值转换为 SQL Date

如何将mysql数据库的表中字段类型为int(存放时间戳)改为datetime类型,并保证数据不知丢

String str=“2011-11-11 22:22:22” 如何把str转换成datetime类型存入mysql中

使用 C# 为 MySQL 转换 DateTime

使用 C# 为 MySQL 转换 DateTime

如何将 C# DateTime 转换为 MySQL 时间戳表列