我正在编辑我在ms sql中构建的查询。
我需要在日期订购商品,但这会产生错误。
locations_aanvang
给出2012-08-12
(yyyy-mm-dd)。所以我把它延长到2012-08-12 00:00:00 +1:00
的EST时间。
所以为了命令我需要将它转换为unix时间戳(对吗?)。
查询是:
SELECT TOP 6 * FROM jd_lighthouses
WHERE locations_aanvang != ''
ORDER BY (SELECT DATEDIFF(s, '1970-01-01', locations_aanvang+' 00:00:00 +1:00')) DESC
我得到的错误是:
[Microsoft][SQL Server Native Client 10.0][SQL Server]Conversion failed when converting date and/or time from character string.
我做错了什么?我能更容易地做到这一点吗?
提前致谢!
亲切的问候, Bram Hammer
答案 0 :(得分:0)
嗯。让我一拍。
答案 1 :(得分:0)
因为我们无法澄清质疑,只有帮助:
如果locations_aanvang
是字符类型,那么您可以避免错误更改代码,如下所示:
DATEDIFF(s, '1970-01-01', locations_aanvang + ' 00:00:00')
由于您使用SQL Server Native Client 10.0
,我假设您拥有SQL Server 2008
和DATE
数据类型。要获得最新的位置,请使用:
ORDER BY CAST(locations_aanvang as DATE) DESC