将datetime列转换为y-m-d格式时,我遇到了一个愚蠢的问题。
我正在运行以下查询:
SELECT STR_TO_DATE(dateadded, '%y-%m-%d') FROM my_table
注意:dateadded列是一种日期时间。
每当我在查询上面运行时,它总是显示(NULL)。
有人可以解决这个问题,因为这让我感到恼火吗?
答案 0 :(得分:2)
由于您的列是datetime类型而不是字符串类型,因此您应该使用DATE_FORMAT函数,如下所示:
SELECT DATE_FORMAT(dateadded, '%y-%m-%d')
FROM my_table
答案 1 :(得分:0)
此查询适用于表格中的四位数年份
SELECT STR_TO_DATE(dateadded, '%Y-%m-%d')
FROM my_table
虽然这将适用于两位数的年度
SELECT STR_TO_DATE(dateadded, '%y-%m-%d')
FROM my_table
您可以通过以下查询
来尝试此操作SELECT
STR_TO_DATE('99-12-12', '%y-%m-%dd'),
STR_TO_DATE('1999-12-12', '%Y-%m-%dd')
两个输出都是
1999-12-12