在MySQL中,我想使用date函数在表中插入新行。
我应该这样编写语句吗?
但是我应该如何格式化日期?
答案 0 :(得分:0)
选择DATE_FORMAT(“ 2014-04-01”,“%M%d,%Y”);
关于MySQL Date的快速Google搜索格式将为您带来有关此特定功能的文档。比在W3Schools甚至dev.mysql.com上找到答案要花更长的时间。
答案 1 :(得分:0)
根据ANSI SQL-92标准(ISO / IEC 9075:1992,数据库语言SQL- 1992年7月30日):
<date literal> ::=
DATE <date string>
<date string> ::=
<quote> <date value> <quote>
<date value> ::=
<years value> <minus sign> <months value> <minus sign> <days value>
<years value> ::= <datetime value>
<months value> ::= <datetime value>
<days value> ::= <datetime value>
<datetime value> ::= <unsigned integer>
让unsigned integer
是一个公理,那么上面的文本将转换为下面的示例日期文本:
DATE '2014-04-01'
它几乎可以在所有关系数据库中工作。所有现代的RDBMS都有自己的扩展,因此,建议您阅读MySQL参考手册(第6章:日期和时间文字)以了解更多信息。
答案 2 :(得分:0)
我们可以将MySQL STR_TO_DATE
函数与与我们要转换为DATE的字符串匹配的格式模型一起使用。
作为演示:
SELECT STR_TO_DATE('April 1, 2014','%M %e, %Y')
这会将字符串转换为DATE值。 DATE值的默认表示为YYYY-MM-DD,因此,如果我们运行该查询,我们希望它返回2014-04-01
。
我们可以将表达式用作INSERT语句中的值。例如,假设目标列的数据类型为DATE
(或DATETIME
或TIMESTAMP
)并命名为mydatecol
,我们可以执行以下操作:
INSERT INTO mytable (foo,mydatecol) VALUES ('bar',STR_TO_DATE('April 1, 2014','%M %e, %Y'))
MySQL参考手册中记录了MySQL函数
STR_TO_DATE
参考:https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_str-to-date
格式模型/说明符记录在DATE_FORMAT函数下
参考:https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format
在含义说明符表中找到%M
,%e
和%Y
。