如何在MySQL中更改日期格式

3

MySQL默认的日期格式是'2019-05-06',这没问题,但当我向表中插入日期时,我想要的格式是2019-5-6而不是上述格式。

这意味着月份和日期必须以1到30开始,而不是01到31。有没有办法在我的 MySQL 中更改默认格式?


INSERT INTO t(i,d) VALUES(1, '2019-5-6')演示 - Lukasz Szozda
我使用一个库将时间戳转换为波斯日期,转换后我得到了1397/5/6,但是当插入表格时它变成了1397/05/06。 - sajadsholi
你的 date_time 格式是从哪里来的?它是从系统中获取数据吗? - A.A Noman
@sajadsholi 不确定你为什么想要这样做? - Mario Mitterbauer
2个回答

2
您似乎正在寻找 MySQL STR_TO_DATE 函数

它接受一个字符串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)

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接