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