如何在mysql

时间:2019-01-06 10:49:13

标签: mysql date

SQL中的默认日期格式为:“ 2019-05-06” 很好,但是当我在表中插入日期时,我希望这种格式2019-5-6而不是上面的格式

这意味着月份和日期必须从1到30而不是01到31开头。是否可以更改sql中的默认格式?

2 个答案:

答案 0 :(得分:0)

在MySQL数据库中存储日期的默认方法是使用DATE。 DATE的正确格式为:YYYY-MM-DD。如果您尝试以“年-月-日”格式以外的其他格式输入日期,则可能会起作用,但不会按您期望的那样存储日期。

为了运行MySQL插入命令并将当前日期添加到表中,您可以在查询中使用MySQL的内置函数CURDATE()。

有关如何使用CURDATE在MySQL中插入日期的示例

$query_auto = "INSERT INTO tablename (col_name, col_date) VALUE ('DATE: Auto CURDATE()', CURDATE() )";

此外,您可以运行查询以手动设置日期

有关如何在MySQL中手动插入日期的示例

$query_manual = "INSERT INTO tablename (col_name, col_date) VALUES ('DATE: Manual Date', '2008-7-04')";

建议在查询时进行日期格式化,如下所示:

SELECT DATE_FORMAT(BirthDate, "%W %M %e %Y") FROM Employees;

您可以在此处找到更多格式化日期的示例: https://www.w3schools.com/sql/func_mysql_date_format.asp

答案 1 :(得分:0)

您似乎正在寻找the MySQL STR_TO_DATE function

  

它需要一个字符串str和一个格式字符串format。如果格式字符串同时包含日期和时间部分,则STR_TO_DATE()返回一个DATETIME值,如果该字符串仅包含日期或时间部分,则返回DATETIME值。

因此,如果应用程序中的日期类似于'2019-5-6',则需要将其转换为MySQL日期:

STR_TO_DATE('2019-5-6', '%Y-%c-%e')

INSERT语句中:

INSERT INTO mytable VALUES(1, STR_TO_DATE('2019-5-6', '%Y-%c-%e'));

提示:

  • %Y:年份,为4位数字
  • %c:数字月份名称(0到12)
  • %e:每月的一天(从0到31)作为数字值