0

在将 datetime 列转换为 ymd 格式时,我遇到了一个愚蠢的问题。

我正在运行以下查询:

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

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

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

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

4

2 回答 2

2

由于您的列是日期时间类型而不是字符串类型,因此您应该使用DATE_FORMAT函数,如下所示:

SELECT DATE_FORMAT(dateadded, '%y-%m-%d') 
FROM my_table
于 2015-01-07T08:17:06.587 回答
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

了解更多详情

于 2015-01-07T08:21:37.477 回答