mysql - 如何在mysql数据库中存储日期?

标签 mysql

如果我有一个日期,例如 mm/dd/yyyy。我怎样才能让 mysql 以这种格式实际存储日期。这是否可能或必须以 yyyy/mm/dd 的形式存储并稍后转换?

我想做的是以 mm/dd/yyyy 格式插入日期,但数据库不允许。它需要 yyyy/mm/dd

最佳答案

你这样做的原因是什么?我看不到它有任何合理的用途。

你不能改变 MySQL 存储日期的方式,不。但是你当然可以在读/写它们时格式化它们。您可以像这样在 SQL 查询中执行此操作:

例如,您可以使用 STR_TO_DATE 函数在插入日期时格式化日期:

INSERT INTO mytable (mydate) VALUES (STR_TO_DATE('12/31/2009', '%m/%d/%Y'))

反之亦然:

SELECT DATE_FORMAT(mydate, '%m/%d/%Y') FROM mytable /* returns 12/31/2009 */

但正如 FactalizeR 指出的那样,在查询中执行此操作并不是一个好习惯,应该将其移动到脚本中,就像这样(考虑到您使用的是 PHP)。

$date = '12/31/2009';
$date = date('Y-m-d', strtotime($date));
mysql_query("INSERT INTO mytable (mydate) VALUES ({$date})");

反之亦然

$date = mysql_result(mysql_query("SELECT mydate FROM mytable"), 0, 0);
$date = date('m/d/Y', strtotime($date)); //returns 12/31/2009

关于mysql - 如何在mysql数据库中存储日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1496792/

相关文章:

MySQL - 按单独表中的值排序

mysql - 针对多用户 Web 应用程序的高效 MySQL 数据库设计

php - 如何修复 MySQL 中 IF 条件的 Codeigniter 中的 "A Database Error Occurred"?

mysql - 在多列条件上使用内连接与使用 WHere 子句

php - 将表单选择选项值发送到数据库不起作用

php - 从XML文件中获取一些数据并输入到sql中

mysql Node : can't set headers after they are sent

mysql - 使用 MySQL 和 MongoDB 的组合

php - 每24小时显示不同的数据库记录

mySQL - 返回最佳结果