[英]SQL update in specific day of week
你好,我有这张桌子
TABLE `record` (
`zpravaID` int(11) NOT NULL AUTO_INCREMENT,
`sensorID` int(11) NOT NULL,
`date_time` datetime NOT NULL,
`cena` double DEFAULT NULL,
`is_cheap` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`zpravaID`), ...)
我想做一个更新,例如将获取 2016 年的所有记录和每条记录,这将在星期一从 14:00:00 到 14:45:00 将is_cheap
设置为 true (1)。 我真的不知道该怎么做。 有任何想法吗?
尝试这个:
update record
set is_cheap = 1
where YEAR(date_time) = 2016
and DAYNAME(date_time) = 'Monday'
and DATE_FORMAT(date_time,'%H:%i:%s') BETWEEN '14:00:00' AND '14:45:00'
要提取星期几,您可以使用WEEKDAY()
或DAYOFWEEK()
,它们之间的区别在于DAYOFWEEK()
sunday 是1
。 您可以使用DATE_FORMAT
仅提取时间值,并使用YEAR()
提取日期的年份:
UPDATE `record` t
SET t.is_cheap = 1
WHERE DAYOFWEEK(t.date_time) = 2
AND DATE_FORMAT(t.date_time,'%H:%i:%s') BETWEEN '14:00:00' AND '14:45:00'
AND YEAR(t.date_time) = 2016
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.