我在存储过程中遇到了date_format()
的问题。当我尝试将datetime
格式化为来自存储过程外部的字符串时,它工作得非常完美-如下所示:
SELECT DATE_FORMAT('2021-04-07 23:59:59.999999', "%d %b %Y");
输出是07 Apr 2021
,这是预期的。
但是在存储过程中,它返回08 Apr 2021
。我认为问题在于.999999
部分。如果我删除它,那么date_format()
返回07 Apr 2021
。我该怎么解决呢?
DELIMITER $$
CREATE PROCEDURE `App_Date_Format`(IN pDateTime DATETIME)
BEGIN
SELECT DATE_FORMAT(pDateTime, "%d %b %Y");
END$$
DELIMITER ;
NB:这是我整个存储过程的一部分
发布于 2021-05-24 01:36:44
您将参数定义为DATETIME
,因此提供的值是四舍五入的。将其定义为DATETIME(6)
CREATE PROCEDURE `App_Date_Format`(IN pDateTime DATETIME(6))
BEGIN
SELECT DATE_FORMAT(pDateTime, "%d %b %Y");
END
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=d1017437fa575d42098b6f18014d9f0f
https://stackoverflow.com/questions/67669707
复制