Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MySQL的str\U to\U date中使用%U_Mysql_Str To Date - Fatal编程技术网

如何在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');