DB2日期時間的基礎(chǔ)知識
DB2日期時間相關(guān)的處理方法是學(xué)習(xí)DB2數(shù)據(jù)庫過程中必須要掌握的,下面就為您詳細(xì)介紹DB2日期時間的基礎(chǔ)知識,供您參考學(xué)習(xí)之用。
為了用SQL語句得到當(dāng)前的日期,時間和時間戳,可以使用相應(yīng)的DB2寄存器:
SELECT current date FROM sysibm.sysdummy1
SELECT current time FROM sysibm.sysdummy1
SELECT current timestamp FROM sysibm.sysdummy1
sysibm.sysdummy1表是一個在內(nèi)存中特殊的表,可以使用上面的語句得到DB2寄存器的值。您也還可以用關(guān)鍵字VALUES來獲取寄存器中的值。例如,在DB2命令行處理器中,可以用下面的SQL語句獲取同樣的信息:
VALUES current date
VALUES current time
VALUES current timestamp
在下面的示例中,我將只提供函數(shù)或表達(dá)式,而不再重復(fù) SELECT ... FROM sysibm.sysdummy1 或使用VALUES子句。
要使當(dāng)前時間或當(dāng)前時間戳調(diào)整到格林威治標(biāo)準(zhǔn)時間(GMT/CUT),可以把當(dāng)前的時間或時間戳減去當(dāng)前時區(qū)寄存器:
current time - current timezone
current timestamp - current timezone
給定了日期、時間或時間戳,則使用適當(dāng)?shù)暮瘮?shù)抽取出(如果適用的話)年、月、日、時、分、秒及微秒各部分:
YEAR (current timestamp)
MONTH (current timestamp)
DAY (current timestamp)
HOUR (current timestamp)
MINUTE (current timestamp)
SECOND (current timestamp)
MICROSECOND (current timestamp)
從時間戳單獨(dú)抽取出日期和時間也非常簡單:
DATE (current timestamp)
TIME (current timestamp)
您還可以使用英語(因?yàn)闆]有更好的術(shù)語)來執(zhí)行日期和時間計算:
current date + 1 YEAR
current date + 3 YEARS + 2 MONTHS + 15 DAYS
current time + 5 HOURS - 3 MINUTES + 10 SECONDS
要計算兩個日期之間相差的天數(shù),您可以對日期作減法,例如:
days (current date) - days (date('1999-10-22'))
而以下示例描述了如何獲得微秒部分歸零的當(dāng)前時間戳記:
CURRENT TIMESTAMP - MICROSECOND (current timestamp) MICROSECONDS
如果想將日期或時間值與其它文本相銜接,那么需要先將該值轉(zhuǎn)換成字符串。為此,可以方便地使用CHAR()函數(shù):
char(current date)
char(current time)
char(current date + 12 hours)
要將字符串轉(zhuǎn)換成日期或時間值,可以使用:
TIMESTAMP ('2002-10-20-12.00.00.000000')
TIMESTAMP ('2002-10-20 12:00:00')
DATE ('2002-10-20')
DATE ('10/20/2002')
TIME ('12:00:00')
TIME ('12.00.00')
【編輯推薦】