SQL 时间戳转DateTime类型

  最近在工做中经过接口获取时间字段为时间戳的值,直接入库后再页面查询时间格式时候须要经过SQL语句将时间戳格式装换为时间格式进行比较,首先咱们须要知道时间戳格式是怎么产生的,: Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至如今的总秒数。Unix时间戳不只被使用在Unix系统、类Unix系统中spa

  时间类型转换为时间戳会有10位和13位两种区别,10 位的时间戳的源时间格式为 yyyy-MM-dd hh:MM:ss .000  毫秒位数为三个零,而13位的时间戳格式是包含了毫秒数的。unix

  10位的时间戳格式在SQL中转换为普通时间格式的方法:DATEADD(s, Unix timestamp+8*3600, '1970-01-01 00:00:00')接口

  13 位的时间戳转换为普通时间格式不能直接使用这种方式,因此在这里个人作法是截取前边10位为无毫秒的时间格式的时间戳,因此写法:io

    DATEADD(S,CAST( SUBSTRING(CreateTime,1,10) AS INT ) + 8 * 3600,'1970-01-01 00:00:00 ')  方法

  在SQL中普通时间格式转为时间戳格式:DATEDIFF(s, '1970-01-01 00:00:00', time)  im

在不一样的语言中实现的方式不一样,参见 http://tool.chinaz.com/Tools/unixtime.aspx    时间戳

相关文章
相关标签/搜索