DataTime 日期用聚合函數(shù)截取
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
[p]一個(gè)datetime型的字段可以存儲(chǔ)的日期范圍是從1753年1月1日第一毫秒到9999年12月31日最后一毫秒。如果你不需要覆蓋這么大范圍的日期和時(shí)間,你可以使用smalldatetime型數(shù)據(jù)。它與datetime型數(shù)據(jù)同樣使用,只不過(guò)它能表示的日期和時(shí)間范圍比datetime型數(shù)據(jù)小,而且不如datetime型數(shù)據(jù)精確。一個(gè)smalldatetime型的字段能夠存儲(chǔ)從1900年1月1日到2079年6月6日的日期,它只能精確到秒。 [br]datetime數(shù)據(jù)類(lèi)型的操作[/p]
[p]1、日期的截取[/p] [p]用extend截取日期的部分值,如: [br]start_time='2004-06-15 11:12:13' 本文以下出現(xiàn)的start_time均為datetime year to second [br]extend(start_time,year to month)='2004-06' [br]extend(start_time,hour to hour)='11' [br]要說(shuō)明的是:以上函數(shù)返回的'2004-06'和'11'的類(lèi)型仍然都是datetime型,無(wú)法直接進(jìn)行加減操作。[/p] [p]2、日期的計(jì)算[/p] [p]應(yīng)用中經(jīng)常會(huì)用到日期的加減,比如取當(dāng)前日期的前一天或指定日期的前一天等, [br]這種操作不好說(shuō),還是看看下面的例子說(shuō)明問(wèn)題: [br]select [br]curretn [br]current year to day - interval(9) day to day, [br]current year to second - interval(9) minute to minute [br]from tab1 [br]將會(huì)返回: [br]2004-06-13 19:30:42.000 [br]2004-06-04 [br]2004-06-13 19:21:42 [br]不知這樣大家明白沒(méi)。 [br]類(lèi)型轉(zhuǎn)換[/p] [p]前文提到的extend(start_time,hour to hour)='11'的結(jié)果仍然是datetime型,如果要進(jìn)行類(lèi)型轉(zhuǎn)換的話: [/p] [p]1、extend(start_time,hour to hour)||''將返回char型,extend(start_time,hour to hour)||''+0將返回integer型,extend(start_time,hour to hour)||''+0.0將返回float型,雖然樣子不太好看,不過(guò)效果不錯(cuò)。[/p] [p]類(lèi)似extend(start_time,hour to hour)||''+0這樣的方法可以在select中使用,但在create view的時(shí)候使用則會(huì)發(fā)生語(yǔ)法錯(cuò)誤(ids 9.4)。[/p] [p]2、用to_char函數(shù): to_char(start_time)將按原樣返回start_time字段的字符形式,如: [br]select to_char(start_time, '%a %b %d, %y %r') from tab1 [br]結(jié)果是: wednesday july 23, 2003 18:45 [br]其中: %a:周、%b:月(英文)、%m月(數(shù)字)、%d:日、%y:年,%r:時(shí)間。 [br]按照以上方法,大家可以將日期時(shí)間型按照自己喜歡的形狀進(jìn)行加工。 [br](ids 9.4) [/p] [p]3、to_date函數(shù): [br]用法類(lèi)似于to_char,如: to_date('20040615111213','%y%m%d%h%m%s') [br]將返回一個(gè)datetime型: 2004-06-15 11:12:13.00000[/p] 該文章在 2010/6/12 9:47:07 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |