Mysql str_to_date 显示 null 而不是格式化日期
Mysql str_to_date shows null instead of formatted date
我在将日期时间列转换为 y-m-d 格式时遇到了一个愚蠢的问题。
我正在运行以下查询:
SELECT STR_TO_DATE(dateadded, '%y-%m-%d') FROM my_table
注意:dateadded 列是一种日期时间。
每当我运行上述查询时,它总是显示 (NULL)。
谁能解决这个问题,因为这让我很恼火?
由于您的列是日期时间类型而不是字符串类型,您应该使用 DATE_FORMAT 函数,如下所示:
SELECT DATE_FORMAT(dateadded, '%y-%m-%d')
FROM my_table
此查询适用于 table
中的四位数年份
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
我在将日期时间列转换为 y-m-d 格式时遇到了一个愚蠢的问题。
我正在运行以下查询:
SELECT STR_TO_DATE(dateadded, '%y-%m-%d') FROM my_table
注意:dateadded 列是一种日期时间。
每当我运行上述查询时,它总是显示 (NULL)。
谁能解决这个问题,因为这让我很恼火?
由于您的列是日期时间类型而不是字符串类型,您应该使用 DATE_FORMAT 函数,如下所示:
SELECT DATE_FORMAT(dateadded, '%y-%m-%d')
FROM my_table
此查询适用于 table
中的四位数年份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