UPDATE XXX SET TOTAL=TOTAL+1,MONTHS=(IF (MONTH(LAST_TIME)=MONTH(NOW()),MONTHS+1,1)),WEEKS=(IF (YEARWEEK(LAST_TIME)=YEARWEEK(NOW()),WEEKS+1,1)),DAYS=(IF (TO_DAYS(LAST_TIME)=TO_DAYS(NOW()),DAYS+1,1)),LAST_TIME=NOW() WHERE ZID='20070420'嘿嘿,最好给点解释
解决方案 »
- sqlserver存储过程转mysql程序过程
- 紧急!!!请教高手解决问题
- 想使用mysql进行全站搜索,问几个问题。
- can't connect tomysql server on 'localhost' <10061>
- 求救,最近 mysql 服务经常死掉.
- 求一SQL语句!!!!(比较难)
- 简单问题,能否Update PRIMARY KEY 字段 的值
- Mysql 插入特殊字符的时候如何处理?
- mysql执行脚本报错
- MySQL5.7目录中没有my.ini 还有ProgramData/MySQL文件夹也是空的
- 我用ADO连接mysql 5.0,起初用ODBC3.51的驱动,连接正常,但是查询结果中文不显示;后用5.0的驱动,中文可以显示,但是连接速度极慢,请
- 初学MYSQL,请大大们介绍本好书!!!
UPDATE XXX SET TOTAL=TOTAL+1,
MONTHS=(case when(MONTH(LAST_TIME)=MONTH(NOW()) then MONTHS+1 else 1) end),
WEEKS=(case when (YEARWEEK(LAST_TIME)=YEARWEEK(NOW()) then WEEKS+1 else 1) end),
DAYS=(Icase when (TO_DAYS(LAST_TIME)=TO_DAYS(NOW()) then DAYS+1else ) end ),
LAST_TIME=NOW()
WHERE ZID='20070420'
用CASE WHEN
====
GETDATE()
MONTHS=( case when MONTH(LAST_TIME)=MONTH(getdate()) then MONTHS+1 else 1 end ),
--当LAST_TIME字段的月和今天的月相等,MONTHS+1,否则为1
WEEKS=( case when DATEPART ( wk , LAST_TIME )=DATEPART (wk ,getdate()) then WEEKS+1 else 1 end ),--当LAST_TIME字段的周和今天的周相等,WEEKS+1,否则为1
DAYS=(( case when DAY(LAST_TIME )=DAY(getdate()) then DAYS+1 else 1 end )
--当LAST_TIME字段的日和今天的日相等,DAYS+1,否则为1
WHERE ZID='20070420'你的应是这样~
将TOTAL字段+1;
如果LAST_TIME字段所表示的月份等于当前月份,更新MONTHS字段+1,否则更新MONTHS为1;
如果LAST_TIME字段所表示的周是当前周,更新WEEKS字段+1,否则更新WEEKS为1;
如果LAST_TIME字段表示的日是当前日,更新DAYS字段+1,否则更新DAYS为1;
更新LAST_TIME地段为当前时间。