2014-01-17 53 views
0

在URL http://sqlfiddle.com/#!2/f6cc7/3,它具有架構,如:如何從表中的日期列中刪除15天?

CREATE TABLE apsent 
    (`day_id` int, `apssent_date` date); 

INSERT INTO apsent 
    (`day_id`, `apssent_date`) 
VALUES 
    (1, '2013-09-26'), 
    (2, '2013-09-27') 
; 

我想知道如何以更新其apssent_date的日期substruct15天?我正在使用Informix DB。

+0

如果您使用Informix數據庫,爲什麼你使用MySQL標記?這裏發佈的答案對informix無效! – ceinmart

+0

我以爲他們是相關的東西。他們共享一些功能。 –

回答

0

在Informix中它的

UPDATE apsent SET apssent_date = apssent_date -interval(15) day to day 

在MySQL中是

UPDATE apsent SET apssent_date = DATE_SUB(apssent_date,INTERVAL 15 DAY); 
1

這裏是我在Informix上的測試,使用dbaccess運行語句。

Obs.Informix不支持該問題中使用的插入語法。

$ DBDATE=y4md- dbaccess -e -a mydb x.sql 

Database selected. 
CREATE temp TABLE apsent 
    (day_id int, apssent_date date); 
Temporary table created. 

INSERT INTO apsent (day_id, apssent_date) VALUES (1, '2013-09-26'); 
1 row(s) inserted. 

INSERT INTO apsent (day_id, apssent_date) VALUES (2, '2013-09-27'); 
1 row(s) inserted. 

INSERT INTO apsent (day_id, apssent_date) VALUES (2, '2013-01-01'); 
1 row(s) inserted. 


select * , apssent_date - 15 units day from apsent ; 

    day_id apssent_date (expression) 
      1 2013-09-26 2013-09-11 
      2 2013-09-27 2013-09-12 
      2 2013-01-01 2012-12-17 
3 row(s) retrieved. 


update apsent set apssent_date = apssent_date - 15 units day ; 
3 row(s) updated. 


select * from apsent ; 

    day_id apssent_date 
      1 2013-09-11 
      2 2013-09-12 
      2 2012-12-17 

3 row(s) retrieved. 
Database closed. 
0

在Informix中:

UPDATE apsent SET apssent_date = apssent_date - 15

相關問題