mySQL如何更改日期格式

时间:2013-11-17 18:32:14

标签: php mysql sql database

mySQL中的日期格式有类型(yyyy-mm-dd),现在我尝试将其反转(dd-mm-yyyy)。 我有桌面用户

CREATE TABLE USER 
(
  USER_ID INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY,
  DOB DATE,   
);

所以当我在其中插入值时:

INSERT INTO USER(DOB) VALUES(DATE_FORMAT('13-07-1990','%d,%m,%Y));
但是,它不起作用。它注意到我应该使用1990-07-13代替' 13-07-1990'。 请帮我这样做。感谢。

3 个答案:

答案 0 :(得分:4)

日期的ANSI SQL标准格式为YYYY-MM-DD HH:MM:SS。以这种格式捕获日期以便插入数据库更容易。

为了使用您正在使用的格式(MM-DD-YYYY)存储日期,您需要使用STR_TO_DATE函数,该函数允许您将字符串转换为日期。该函数的语法是:

  

STR_TO_DATE(str, format)

可以找到格式的说明符here

对于INSERT语句,您可以使用:

INSERT INTO `user` (`dob`) VALUES
( STR_TO_DATE('13-07-1990','%d-%m-%Y') )

答案 1 :(得分:0)

DATE_FORMAT仅用于将日期保存到具有非标准格式的varchar字段中,或者以非标准格式从DB中检索日期。除 YYYY-MM-DD 之外,您不能将DATE类型字段中的内容保存为任何格式。

答案 2 :(得分:-1)

来自DOCS :DATE类型用于具有日期部分但没有时间部分的值。 MySQL以'YYYY-MM-DD'格式检索并显示DATE值。支持的范围是'1000-01-01'到'9999-12-31'。

我的方式会有所不同。我会在php中计算我的日期并将所需的格式传递给查询,而不是在查询中计算它。

$your_date= "2010-03-21";
$desired_format = date("d-m-Y", strtotime($your_date));//returns 21-03-2010
$desired_format = date("m-d-Y", strtotime($your_date));//returns 03-21-2010

使用strtotime和date功能,您可以将日期转换为您想要的任何格式