在Sql server2008数据库中新增了四个有关日期时间的函数,我们一块来看看吧!
1> Date:好像大型数据库都没有这个类型,似乎因为日期和时间总是形影不离的,有DateTime就足够了?使用上总是不方便,比如插入、更新总是要使用函数来转换,查询时同样要转换,效率受了影响。以前没有这个类型,有时干脆就使用int或者char(8)来代替,后者带来最大的问题是日期的有效性不能保证,运算也比较麻烦,比如加减一天等。
对于Date的格式化串,个人觉得YYYYMMDD是非常好的一种方式,输入方便啊!默认的格式是YYYY-MM-DD
2> Time:这个类型也可用DateTime代理,但那是相当的不方便啊!time的定义可以指定精度,0-7位,缺省time为7为精度,和time(7)是一样的,故其精确度为100ns!在小时中24是无效的,午夜可用00:00或者12:00 am来表示。
Time类型是不能插入到Date类型的,因Datetime的精度为3位,所以任何精度超过3为的time插入均会失败,插入时日期部分以默认的1900-01-01来补齐。
3> Datetime2:datetime的扩展,精度更高了,可以用户自定义精度,也就7位时间的进度啊!不知道哪些地方需要这个高的精度,鄙人做的系统好像没有这么高的要求。
4>Datetimeoffset:这个类型有点意思,感觉和Datetime2是一样的,只是包含可识别的时区,所以hh部分为14:00到-14:00!有点纳闷,为什么不是12:00到-12:00呢?不明白哦!目前还想不到可用的地方。呵呵
总结:个人觉得Date、Time两个类型在数据仓库多维建模方面有点用处,对于报表统计方面会方便很多!