使用周数指令(%U、%u、%V 或 %v)时,MySQL STR_TO_DATE 返回 NULL

问题描述 投票:0回答:1
STR_TO_DATE

%U
%u
%V
)时,
%v
 将从 
MySQL 8.0.35
 函数返回。 
官方文档
表明
STR_TO_DATE应该是DATE_FORMAT
的逆。我希望得到返回的相同/相似日期作为 
DATE_FORMAT
 函数的输入。
这里

我准备了一个sqlfiddle,或者你可以使用以下源代码重新创建问题:

SET @_NOW=NOW(6), @_FMT='%YW%U'; SELECT @_NOW,@_FMT, DATE_FORMAT(@_NOW,@_FMT) AS `formatted`, STR_TO_DATE(DATE_FORMAT(@_NOW,@_FMT),@_FMT) AS `parsed`;

这是一个错误吗?难道我做错了什么?有没有人有解决办法?
    

问题在于,转换为一周并不能转换为具体的一天,但MySQL数据验证必须验证年、月、日。
mysql date-format str-to-date
1个回答
0
投票
以下内容有效,因为它映射到特定的一天(一周的第一天):

mysql> select str_to_date('2024W04 Sunday', '%XW%V %W') as date; +------------+ | date | +------------+ | 2024-01-28 | +------------+


© www.soinside.com 2019 - 2024. All rights reserved.