我有一个SQL查询将我的数据库中的日期/时间戳列从UNIX时间戳转换为可读格式。这给了我一个很好的可读格式,但我想删除实际的时间戳,并只保留日期..因为我试图计数和分组的所有日期只。转换Unix时间戳iinto YYYYMMDD
SELECT DATEADD(ss,msg.timestamp/1000,'01/01/1970')As DateTime
FROM dbo.cp_messages msg
结果目前看起来是这样的:
2005-10-26 11:12:36.000
但我想:
2005-10-26
如何退出的时间。
评论有帮助,但我如何搜索日期之间现在我已经将unix时间转换为正确的格式..我已经尝试了下面,但每次都得到错误。
SELECT COUNT(msg.messageId)
,CONVERT(VARCHAR(10), DATEADD(ss, msg.[timestamp]/1000, '01/01/1970'), 120)
FROM dbo.cp_messages msg
WHERE timestamp >= DATEADD(DAY, -2, GETDATE())
GROUP BY timestamp
我似乎与每个实例的计数结束了,但我后是这一天的总计数..
如
1 2015-10-29
1 2015-10-29
1 2015-10-29
当我想
3 2015-10-29
不知道如何得到期望的结果
的[?我如何转换BIGINT(UNIX时间戳),在SQL Server日期时间]可能的复制(http://stackoverflow.com/questions/2904256/how-can-i-convert-bigint-unix -timestamp-datetime-in-sql-server) – Ben
除了答案之外,如果未在YYYY-MM-DD格式中指定,请注意日期格式,因为10-01-1970可以是10月1日或10月1日!在导入数据之前,请检查SET DATEFORMAT DMY以强制使用日期格式。 –