将日期插入表中

时间:2019-07-26 20:51:48

标签: mysql sql

在MySQL中,我想使用date函数在表中插入新行。

我应该这样编写语句吗?

但是我应该如何格式化日期?

3 个答案:

答案 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(或DATETIMETIMESTAMP)并命名为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

相关问题