原文: https://www.freecodecamp.org/news/sql-convert-the-date-to-string-or-datetime-function/
当你在使用 SQL 时,你需要学习如何正确格式化日期。
这是因为日期是任何 SQL 和其他软件相关活动的一个重要方面。例如,你需要能够使用日期来为条目添加时间戳,并跟踪事情发生的时间。几乎所有的事情都与一个日期相关联。
在这篇文章中,我想告诉你如何用 CONVERT()
和 STR_TO_DATE()
函数在 SQL 中把日期和日期时间转换为字符串。
我们将讨论的内容
- 如何用
CONVERT()
函数将日期转换为字符串 - 如何用
STR_TO_DATE()
函数将日期转换为字符串 - 如何用
DATE_FORMAT()
改变时间格式 - 小结
如何用 CONVERT() 函数将日期转换为字符串
CONVERT()
函数有两个参数:
- 日期 - 必须是一个字符串,或者使用内置的日期获取函数,如
NOW()
或SYSDATE()
- 数据类型 - 你想将日期转换成的数据类型
下面是 CONVERT()
函数的用法:
SELECT CONVERT(NOW(), CHAR);
上面的查询使用 NOW()
函数来获取当前的日期和时间。第二个参数是 CHAR
,是日期被转换为的数据类型。
如果你愿意,也可以使用 SYSDATE()
来代替它:
SELECT CONVERT(SYSDATE(), CHAR);
还有许多其他的函数可以用来处理日期问题。如果你想阅读更多内容,我在本教程中写过它们。
你不仅可以用函数作为 CONVERT()
函数的第一个参数。你可以使用一个写成字符串的日期,然后指定 DATE
作为你要转换的数据类型:
SELECT CONVERT("2023-01-10", DATE)
如何用 STR_TO_DATE() 函数将日期转换成字符串
STR_TO_DATE()
函数是另一个转换日期或日期时间的有用函数。它接受两个参数:
- 日期 - 它必须是一个字符串,例如,“09-01-2023”。
- 格式 - 你希望日期被转换为的格式,例如,
mm-dd-yyyy
。你可以像这样指定格式:%d-%m-%Y
。
下面是 STR_TO_DATE()
函数的用法:
SELECT STR_TO_DATE('09-01-2023', '%d-%m-%Y')
你也可以用斜线(/
)来分隔日期和格式:
SELECT STR_TO_DATE('09/01/2023', '%d/%m/%Y')
注意:如果你没有为日期和格式使用相同的分隔符,你会得到返回值为 null。
如果你输入的日期是第 N
天,你必须将格式中的 d
改为大写字母:
SELECT STR_TO_DATE('9th-01-2023', '%D-%m-%Y')
而如果你将月份写成缩写,你必须将格式中的 m
改为大写字母:
SELECT STR_TO_DATE('9th-JAN-2023', '%D-%M-%Y')
接下来,我们将看看如何用 DATE_FORMAT()
函数来处理日期格式。
如何使用 DATE_FORMAT() 改变时间格式
如果你想将月份写成全称,就把格式中的 m
改为大写字母,并使用 DATE_FORMAT()
函数:
SELECT DATE_FORMAT('2023-01-09', '%d-%M-%y')
如果你想将日期写成第几天,就把格式中的 d
改为大写字母:
SELECT DATE_FORMAT('2023-01-09', '%D-%M-%y')
如果你想写年份的全称,就把 y
改成大写字母:
SELECT DATE_FORMAT('2023-01-09', '%D-%M-%Y')
小结
这篇文章向你展示了如何用 CONVERT()
和 STR_TO_DATE()
函数将日期转换为字符串。我们还研究了如何用 DATE_FORMAT()
函数来改变日期格式。
如果你觉得这篇文章对你有帮助,请不要犹豫,与你在社交媒体上的朋友分享它。