Return DATE when year, week number and weekday 在一个 mysqli 查询中给出
Return DATE when year, week number and weekday given in one mysqli query
我有以下 table :
--------------------------------------
| Year | Week | Weekday | Date |
--------------------------------------
| 2019 | 20 | 3 | |
| 2019 | 10 | 4 | |
| 2019 | 2 | 1 | |
| 2019 | 41 | 2 | |
--------------------------------------
我希望最后一列根据其他列中的年、周和工作日填写准确的日期 ("Y-M-d")。
是否可以在一个 MYSQLi 查询中执行此操作?
到目前为止,我尝试过:
UPDATE table
SET Date = STR_TO_DATE(Year Week Weekday, '%X %V %w')
和
UPDATE table
SET Date = DATE(STR_TO_DATE(Year Week Weekday, '%X %V %w'))
和
UPDATE table
SET Date = DATE(DATE_FORMAT(Year Week Weekday, '%Y %m %d'))
没有成功。
关于如何在一次查询中获得此信息的任何想法?
使用 MAKEDATE()
你可以这样计算日期:
UPDATE tablename
SET Date = MAKEDATE(Year, (Week - 1) * 7 + Weekday);
参见demo。
结果:
| Year | Week | Weekday | Date |
| ---- | ---- | ------- | ---------- |
| 2019 | 20 | 3 | 2019-05-16 |
| 2019 | 10 | 4 | 2019-03-08 |
| 2019 | 2 | 1 | 2019-01-08 |
| 2019 | 41 | 2 | 2019-10-09 |
我有以下 table :
--------------------------------------
| Year | Week | Weekday | Date |
--------------------------------------
| 2019 | 20 | 3 | |
| 2019 | 10 | 4 | |
| 2019 | 2 | 1 | |
| 2019 | 41 | 2 | |
--------------------------------------
我希望最后一列根据其他列中的年、周和工作日填写准确的日期 ("Y-M-d")。 是否可以在一个 MYSQLi 查询中执行此操作? 到目前为止,我尝试过:
UPDATE table
SET Date = STR_TO_DATE(Year Week Weekday, '%X %V %w')
和
UPDATE table
SET Date = DATE(STR_TO_DATE(Year Week Weekday, '%X %V %w'))
和
UPDATE table
SET Date = DATE(DATE_FORMAT(Year Week Weekday, '%Y %m %d'))
没有成功。 关于如何在一次查询中获得此信息的任何想法?
使用 MAKEDATE()
你可以这样计算日期:
UPDATE tablename
SET Date = MAKEDATE(Year, (Week - 1) * 7 + Weekday);
参见demo。
结果:
| Year | Week | Weekday | Date |
| ---- | ---- | ------- | ---------- |
| 2019 | 20 | 3 | 2019-05-16 |
| 2019 | 10 | 4 | 2019-03-08 |
| 2019 | 2 | 1 | 2019-01-08 |
| 2019 | 41 | 2 | 2019-10-09 |