sql中获得部分时间的方法

很多时候,我们可能希望按月、按天、按年做一些数据统计,但是,我们实际保存的数据可能是一个很精确的发生时间,可能是到秒。如何根据一个时间之截取其中的一部分就成了问题。
有两个解决方法:
最直接的想法利用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。

你可能感兴趣的:(sql,数据库)