解读sql中获得部分时间的方法_Mssql数据库教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:解读SQL的select语句执行顺序
select 语句执行顺序 (7) SELECT (8) DISTINCT (10) TOP_specification select_list (1) FROM left_table (3) join_type JOIN right_table (2) ON join_condition (4) WHERE where_condition (5) GROUP BY group_by_list (6) HAVING having_condition (9) OR

      有的时候,我们可能希望按月、按天、按年做一些数据统计,但是,我们实际保存的数据可能是一个很精确的发生时间,可能是到秒。如何根据一个时间之截取其中的一部分就成了问题。
     有两个解决方法:
最直接的想法利用DatePart或者Year、Month、Day函数
CAST(
    (
      STR( YEAR( GETDATE() ) ) + ’/’ +
      STR( MONTH( GETDATE() ) ) + ’/’ +
      STR( DAY( GETDATE() ) )
    )
    AS DATETIME 
)
如果只要年和月,就省掉前面的。

方法二,利用时间计算函数
例如获得月
DateAdd(month, DateDiff(month, 0, Coltime), 0)
原理就是数据库时间值Coltime减掉1900-1-1获得这期间的月份个数,然后再重新加回1900-1-1。

分享:解读4个编写SQL语句需要注意的常识
1.尽量不要对列名进行函数处理。而是针对后面的值进行处理 例如wherecol1=-5的效率比where-col1=5的效率要高 因为后面的条件对列值进行了计算。这样的条件下优化器无法使用索引 而是要针对所有值进行计算之后才能再比较 2.尽量使用和数剧列一样的值进行操作

来源:模板无忧//所属分类:Mssql数据库教程/更新时间:2010-01-31
相关Mssql数据库教程