如何在MySQL的str\U to\U date中使用%U
我在遗留数据库中将每周指标的日期存储为以下格式的字符串:如何在MySQL的str\U to\U date中使用%U,mysql,str-to-date,Mysql,Str To Date,我在遗留数据库中将每周指标的日期存储为以下格式的字符串: 2010 10这是一款采用%Y%U格式(即年份后接周数)的手工艺品 因此,我尝试通过执行STR\U to\U DATE(time\U week,%Y%U')将其反转为datetime列,但它似乎不理解week格式 当我对硬编码字符串进行测试时,它也不起作用 mysql> select str_to_date('2015 01', '%Y %U'); +---------------------------------+ | str_
2010 10
这是一款采用%Y%U
格式(即年份后接周数)的手工艺品
因此,我尝试通过执行STR\U to\U DATE(time\U week,%Y%U')
将其反转为datetime列,但它似乎不理解week格式
当我对硬编码字符串进行测试时,它也不起作用
mysql> select str_to_date('2015 01', '%Y %U');
+---------------------------------+
| str_to_date('2015 01', '%Y %U') |
+---------------------------------+
| 2015-00-00 |
+---------------------------------+
mysql> select str_to_date('2015 20', '%Y %U');
+---------------------------------+
| str_to_date('2015 20', '%Y %U') |
+---------------------------------+
| 2015-00-00 |
+---------------------------------+
我肯定错过了房间里的大象,但我看不出是什么。您不能使用格式
%X%V”
将年-周
字符串转换为日期,因为如果周跨越月边界,年和周的组合不能唯一标识年和月。要将年-周
转换为日期,还应指定工作日
:
这是一个例子
select str_to_date('2015 20 Friday', '%X%V %W');
编辑:将日期中的
'%Y%U'
更改为'%X%V%W'
缺少日期,因此秋季第一天应在日期中添加任何日期。使用concat函数添加日期
CONCAT('2015 01', ' Sunday');
在此之后,您应该使用函数STR_TO_DATE()
,并且上述日期的日期格式应该是'%X%V%W'
(在CONCAT()之后)
)
输出为2015-01-04
SELECT STR_TO_DATE(CONCAT('2015 20', ' Sunday'), '%X %V %W');
输出为2015-05-17
我希望这对你有帮助。
与您的问题类似的帖子。在您的日期('2015 01')中,此格式中没有“有任何一天”,因此如何才能从str_to_date函数中获得任何日期
SELECT STR_TO_DATE(CONCAT('2015 20', ' Sunday'), '%X %V %W');