db2常用的時間操作(資料庫查詢)

2021-07-10 17:38:29 字數 3697 閱讀 4904

--請注意,使用時,請把文中空格替換,文中的空格有誤

--獲取當前日期:

select current date from sysibm.sysdummy1; 

values current date;

--獲取當前日期 

select current time from sysibm.sysdummy1; 

values current time; 

--獲取當前時間戳 

select current timestamp from sysibm.sysdummy1; 

values current timestamp; 

--要使當前時間或當前時間戳記調整到 gmt/cut,則把當前的時間或時間戳記減去當前時區暫存器:

values current time -current timezone; 

values current timestamp -current timezone; 

--獲取當前年份

values year(current timestamp);

--獲取當前月 

values month(current timestamp);

--獲取當前日 

values day(current timestamp);

--獲取當前時 

values hour(current timestamp);

--獲取分鐘 

values minute(current timestamp);

--獲取秒 

values second(current timestamp);

--獲取毫秒 

values microsecond(current timestamp); 

--從時間戳記單獨抽取出日期和時間

values date(current timestamp); 

values varchar_format(current timestamp,'yyyy-mm-dd'); 

values char(current date); 

values

time(current timestamp); 

--執行日期和時間的計算

values current date+1 year;    

values current date+3 years+2 months +15 days; 

values current time +5 hours -3 minutes +10 seconds; 

--計算兩個日期之間的天數

values days(current date)- days(date('2010-02-20')); 

--時間和日期換成字串

values char(current date); 

values char(current time); 

--要將字串轉換成日期或時間值

values timestamp('2010-03-09-22.43.00.000000'); 

values timestamp('2010-03-09 22:44:36'); 

values date('2010-03-09'); 

values date('03/09/2010'); 

values

time('22:45:27'); 

values

time('22.45.27'); 

--計算兩個時間戳記之間的時差:

--秒的小數部分為單位 

values timestampdiff(1,char(current timestamp - timestamp('2010-01-01-00.00.00'))); 

--秒為單位 

values timestampdiff(2,char(current timestamp - timestamp('2010-01-01-00.00.00'))); 

--分為單位 

values timestampdiff(4,char(current timestamp - timestamp('2010-01-01-00.00.00'))); 

--小時為單位 

values timestampdiff(8,char(current timestamp - timestamp('2010-01-01-00.00.00'))); 

--天為單位 

values timestampdiff(16,char(current timestamp - timestamp('2010-01-01-00.00.00'))); 

--週為單位 

values timestampdiff(32,char(current timestamp - timestamp('2010-01-01-00.00.00'))); 

--月為單位 

values timestampdiff(64,char(current timestamp - timestamp('2010-01-01-00.00.00'))); 

--季度為單位 

values timestampdiff(128,char(current timestamp - timestamp('2010-01-01-00.00.00'))); 

--年為單位 

values timestampdiff(256,char(current timestamp - timestamp('2010-01-01-00.00.00')));

sql server、oracle和db2的日期及時間函式比較

1、在日期基礎上減去一天

sql:

dateadd(day,-1,convert(smalldatetime,returndate))

oarcle:

to_char(to_date(returndate,』yyyy-mm-dd』)-1 , 『yyyy-mm-dd』)

db2:

char(date(returndate) - 1 days)

——————————-

2、在日期和時間的基礎上減去一天

sql:

dateadd(day,-1,convert(smalldatetime,enddate+』 『+endtime))

oralce:

to_char(to_date(concat(concat(enddate,』 『),endtime),』yyyy-mm-dd hh24:mi:ss』)-1 , 『yyyy-mm-dd hh24:mi:ss』)

db2:

char(timestamp(concat(concat(begindate,』 『),begintime))- 1 days)

——————————-

3、計算兩個日期間的天數

sql:

convert(datetime,t1.lastoperatedate)-convert(datetime,t1.createdate)

oracle:

to_date(t1.lastoperatedate,』yyyy-mm-dd』)-to_date(t1.createdate,』yyyy-mm-dd』)

db2:

days(date(lastoperatedate))-days(date(createdate))

如果要在日期或日期和時間的基礎上加減年、月、日、時、分、秒,可以根據上面的例子做相應改動,具體的使用方法都很類似)

JDBC 查詢(讀操作)資料庫

註冊mysql的驅動 獲得乙個連線 建立乙個查詢 處理結果集 關閉連線 class.forname com.mysql.jdbc.driver connection conn drivermanager.getconnection db url,user,pass preparedstatement...

查詢DB2資料庫約束

近期在做乙個功能測試時,需要往db2資料庫中插入一條資料,插入時,一直報 sqlerrmc wcsadmin.manifest.f 428,錯誤,通過dbvisualizer personal工具檢視該錶,顯示有乙個 f 428外來鍵約束,但是無奈,就是不知道具體是哪一列 或哪幾列,本人對這個系統整...

DB2資料庫相關操作

自增字段的建立 start with 1 increment by 1 cache 20 no cycle no order 設定自增序列從20001開始 alter sequence linkage seq restart with 20001 使用自增字段 插入一條資料insert into l...