DataTime 日期用聚合函数截取
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
[p]一个datetime型的字段可以存储的日期范围是从1753年1月1日第一毫秒到9999年12月31日最后一毫秒。如果你不需要覆盖这么大范围的日期和时间,你可以使用smalldatetime型数据。它与datetime型数据同样使用,只不过它能表示的日期和时间范围比datetime型数据小,而且不如datetime型数据精确。一个smalldatetime型的字段能够存储从1900年1月1日到2079年6月6日的日期,它只能精确到秒。 [br]datetime数据类型的操作[/p]
[p]1、日期的截取[/p] [p]用extend截取日期的部分值,如: [br]start_time='2004-06-15 11:12:13' 本文以下出现的start_time均为datetime year to second [br]extend(start_time,year to month)='2004-06' [br]extend(start_time,hour to hour)='11' [br]要说明的是:以上函数返回的'2004-06'和'11'的类型仍然都是datetime型,无法直接进行加减操作。[/p] [p]2、日期的计算[/p] [p]应用中经常会用到日期的加减,比如取当前日期的前一天或指定日期的前一天等, [br]这种操作不好说,还是看看下面的例子说明问题: [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]将会返回: [br]2004-06-13 19:30:42.000 [br]2004-06-04 [br]2004-06-13 19:21:42 [br]不知这样大家明白没。 [br]类型转换[/p] [p]前文提到的extend(start_time,hour to hour)='11'的结果仍然是datetime型,如果要进行类型转换的话: [/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型,虽然样子不太好看,不过效果不错。[/p] [p]类似extend(start_time,hour to hour)||''+0这样的方法可以在select中使用,但在create view的时候使用则会发生语法错误(ids 9.4)。[/p] [p]2、用to_char函数: to_char(start_time)将按原样返回start_time字段的字符形式,如: [br]select to_char(start_time, '%a %b %d, %y %r') from tab1 [br]结果是: wednesday july 23, 2003 18:45 [br]其中: %a:周、%b:月(英文)、%m月(数字)、%d:日、%y:年,%r:时间。 [br]按照以上方法,大家可以将日期时间型按照自己喜欢的形状进行加工。 [br](ids 9.4) [/p] [p]3、to_date函数: [br]用法类似于to_char,如: to_date('20040615111213','%y%m%d%h%m%s') [br]将返回一个datetime型: 2004-06-15 11:12:13.00000[/p] 该文章在 2010/6/12 9:47:07 编辑过 |
关键字查询
相关文章
正在查询... |