SQL中的默认日期格式为:“ 2019-05-06
”
很好,但是当我在表中插入日期时,我希望这种格式2019-5-6
而不是上面的格式
这意味着月份和日期必须从1到30而不是01到31开头。是否可以更改sql中的默认格式?
答案 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
值,如果该字符串仅包含日期或时间部分,则返回DATE
或TIME
值。>
因此,如果应用程序中的日期类似于'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)作为数字值