如果我有一个日期,例如 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/