SQL过程:将特定行更新为当前系统年份

时间:2018-03-08 02:21:43

标签: mysql sql

您好我需要创建一个程序来将特定行更新到"当前年份" 执行函数时的当前年份。如果可以在不需要指定月份或日期的情况下完成此操作,则允许将多个日期更新到最近一年而不影响日期。

我搜索的大多数帖子/结果导致了解如何选择当前年份的项目,但我找不到有关设置当前年份的任何信息(无需手动输入或使用ADD DATE)

我当前名为tblevents的表格如下

|EventID|StartDate          |EndDate            |EventFee|  
|1      |2005-12-20 00:00:00|2005-12-20 00:00:00|350     |  
|2      |2005-12-20 00:00:00|2005-12-20 00:00:00|320     |  
|3      |2005-12-20 00:00:00|2005-12-20 00:00:00|100     |  
|4      |2005-12-20 00:00:00|2005-12-20 00:00:00|200     |  
|5      |2005-12-20 00:00:00|2005-12-20 00:00:00|650     |  

我首先尝试仅使用UPDATE执行查询以便习惯它,到目前为止我已经尝试了很多变体

UPDATE `tblevents` 
SET `StartDate` = '(SELECT YEAR(CURDATE()))-12-20', `EndDate` = '(SELECT 
YEAR(CURDATE()))-12-20'
WHERE `EventID`=3;

并尝试了这个:

SELECT YEAR(CURDATE()) AS 'CYEAR';
UPDATE tblevents SET `StartDate` = 'CYEAR-12-05', `EndDate` = 'CYEAR-12-07'
WHERE `EventID`=3;

我很想知道更新查询出错的地方,以及如何使用过程完成此操作。

我收到语法错误或日期设置为0000-00-00 00:00:00

1 个答案:

答案 0 :(得分:1)

如果要将日期设置为当前年份,可以使用日期操作:

vector