mysql - 如何在 MySQL 的 str_to_date 中使用 %U

标签 mysql str-to-date

我在遗留数据库中将每周指标的日期存储为具有以下格式的字符串:

2010 10 使用 %Y %U 格式(即年份后跟周数)

所以我尝试通过执行 STR_TO_DATE(time_week, '%Y %U') 将其反转为日期时间列,但它似乎不理解周格式

当我对硬编码字符串进行测试时,它也不起作用

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                      |
+---------------------------------+

我当然错过了房间里的大象,但我看不到什么。

最佳答案

在您的日期中,缺少日期,因此您应该在日期中添加任何 day。使用 concat 函数添加日期

CONCAT('2015 01', ' Sunday');

在此之后你应该使用函数 STR_TO_DATE() 并且日期格式应该是 '%X %V %W' 对于上面的日期(在 CONCAT( ))

SELECT STR_TO_DATE(CONCAT('2015 01', ' Sunday'), '%X %V %W');

输出为 2015-01-04

SELECT STR_TO_DATE(CONCAT('2015 20', ' Sunday'), '%X %V %W');

输出为 2015-05-17

希望对您有所帮助。 this发布与您的问题类似的帖子。

关于mysql - 如何在 MySQL 的 str_to_date 中使用 %U,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35487696/

相关文章:

mysql - 如何在 MySQL 中将 2 个字符串转换为日期

php - 通过PHP将日期值插入MySQL

php - 如何在 MySQL 插入语句中正确使用 str_to_date 的多个实例?

mysql - SQL 性能建议 - 在数百万条记录上选择空列花费的时间太长

php - 无法从复选框中获取值并用于另一个 php 文件

mysql - 如何在 SQL 中添加值?

php - 我对任意深度层次数据集的嵌套集的替代方法 : Good or Bad?

mysql - 如何结合大小写求和

mysql - MySQL 5.5 和 MySQL 5.6 之间的 STR_TO_DATE 差异

delphi - 为什么 TFormatSettings 的行为不符合预期?