2016-05-31 13 views
2

你好,我有這個表SQL更新

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)。 我真的不知道,該怎麼做。有任何想法嗎?

回答

1

要提取一週的一天,你可以使用WEEKDAY()DAYOFWEEK(),它們之間的區別在於,在DAYOFWEEK()週日1。您可以使用DATE_FORMAT來提取只有時間值,並且提取年份的日期:

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