Mysql str_to_date显示null而不是格式化日期

时间:2015-01-07 08:12:52

标签: mysql sql str-to-date

将datetime列转换为y-m-d格式时,我遇到了一个愚蠢的问题。

我正在运行以下查询:

SELECT STR_TO_DATE(dateadded, '%y-%m-%d') FROM my_table

注意:dateadded列是一种日期时间。

每当我在查询上面运行时,它总是显示(NULL)。

有人可以解决这个问题,因为这让我感到恼火吗?

2 个答案:

答案 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

for further details