您好,我有这张表
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
设置为是的(1)。
我真的不知道,怎么做。有什么想法吗?
答案 0 :(得分: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'
答案 1 :(得分:1)
要提取星期几,您可以使用WEEKDAY()
或DAYOFWEEK()
,它们之间的区别在于DAYOFWEEK()
星期日是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