以下是我在網路上所收集到的關於informix 時間的sql函數用法,有在使用informix資料庫的人,可以參考看看囉!

today,返回現在系統日期

current 返回現在日期含時間,相當於sql server中的getdate()

DATE(VARCHAR(10)) 返回 DATE 類型
該函數以一個字符串變量為參數,其格式由環境變量 DBDATE 指定,並返回一個 DATE 類型。在setnet32中格式必須設為是「MDY4/」。

image

DATE(DATETIME) 返回 DATE 類型
這個函數與上一個函數相同,但是其輸入參數是可以為任意精度的 DATETIME。

DATE(INTEGER) 返回 DATE 類型
INTEGER 參數表示從 1899 年 12 月 31 日以來的天數。

DAY(DATE) 返回 INTEGER 類型
DAY 函數返回月中的日,格式為 INTEGER。

DAY(DATETIME)
與上一個函數相同,只是這個函數的輸入參數為任意精度的 DATETIME。

EXTEND(DATE, precision) 返回 DATETIME 類型

EXTEND 函數調整 DATE 參數的精度,並返回適當的 DATETIME。由於說起來有點模糊,這裡舉一個例子:
EXTEND(DATE(1), YEAR TO SECOND)

EXTEND(DATETIME, precision) 返回 DATETIME 類型
與上一個函數相同,但操作的對象是一個 DATETIME,而不是一個 DATE。

MONTH(DATE) 返回 INTEGER 類型
MONTH 從參數 DATE 中提取出月份。

MONTH(DATETIME) 返回 INTEGER 類型
該函數從任意精度的 DATETIME 中提取出月份。

WEEKDAY(DATE) 返回 INTEGER 類型
WEEKDAY 函數根據指定的 DATE 返回一個 INTEGER,表示星期幾。0 表示星期天,6 表示星期六。

WEEKDAY(DATETIME) 返回 INTEGER 類型
與上一個函數相同,但操作對象是 DATETIME。

YEAR(DATE) 返回 INTEGER 類型
該函數從指定的參數 DATE 中提取出年份。

YEAR(DATETIME) 返回 INTEGER 類型
與上一個函數相同,但操作對象是 DATETIME。

MDY(INTEGER, INTEGER, INTEGER) 返回 DATE 類型
該函數根據三個 INTEGER 參數創建一個 DATE。這些參數分別指定月、日和年。注意,年是四位的整數。

mdy--用法
取得本月的第一天
MDY(MONTH(TODAY),1,YEAR(TODAY))

取得本月的最後一天
MDY(MONTH(TODAY),1,YEAR(TODAY)) - 1 + 1 UNITS MONTH

取得上月的第一天
MDY(MONTH(TODAY),1,YEAR(TODAY)) - 1 UNITS MONTH

取得上月的最後一天
MDY(MONTH(TODAY),1,YEAR(TODAY)) - 1

 

TO_CHAR(DATE, VARCHAR(??)) 返回 VARCHAR(??) 類型
該函數帶一個 DATE 參數和一個格式參數,並返回一個表示日期的字符串,該字符串遵從要求的格式。格式字符串可以包括:
%A: 周
%B: 月
%d: 十進製表示的日
%Y: 4 位數表示的年
%R: 按 24 小時計的時間
TO_CHAR(DATE, VARCHAR(??)) 返回 VARCHAR(??) 類型
同上。
TO_DATE(VARCHAR(??), VARCHAR(??)) 返回 DATE 類型
這是 TO_CHAR 的逆向操作,使用相同的格式字符串作為第二個參數
下面的語句中extend用來限制到年、月、日,interval是說明間隔數
減去(加上)天數,interval最多取兩位
從time_stamp字段減去兩天時間
select extend(time_stamp-interval(2) day to day) from users;

從當前時間減去兩天
select extend(current-interval(2) day to day) from users;
減去(加上)月數,interval最多取兩位
從time_stamp字段減去兩個月
select extend(time_stamp-interval(2) month to month) from users;

從當前時間減去兩個月
select extend(current-interval(2) month to month) from users;
減去(加上)年數,interval最多取四位
從time_stamp字段減去兩個年
select extend(time_stamp-interval(2) year to year) from users;

從當前時間減去兩年
select extend(current-interval(2) year to year) from users;
試了一下,上面的寫法會顯示到毫秒,如
2004-09-11 17:24:03.000
2004-09-11 17:24:03.000
2004-09-11 17:24:03.000


可以再加個extend限制,如下
顯示到月
select extend(((extend(current-interval(2) day to day))),year to month) from users;

顯示到天
select extend(((extend(current-interval(2) month to month))),year to day) from users;

顯示到秒
select extend(((extend(current-interval(2) year to year))),year to second) from users;
上面講的是其中一種方法,有另一種用法,可以用units關鍵字。
--年
select current-5 units year from users
--月
select current-5 units month from users
--日
select current-5 units day from users
--時
select current-5 units hour from users
--分
select current-5 units minute from users
--秒
select current-5 units second from users

創作者介紹

信德隨想

丫德 發表在 痞客邦 PIXNET 留言(0) 人氣()