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