Sql 如何将nvarchar转换为datetime,而无需在查询中附加select返回?
我有一个sql查询:Sql 如何将nvarchar转换为datetime,而无需在查询中附加select返回?,sql,sql-server,tsql,sql-server-2012,Sql,Sql Server,Tsql,Sql Server 2012,我有一个sql查询: declare @x nvarchar(50) = '2011-11-11' select convert(datetime, @x) SELECT * FROM T WHERE dt > @x 但不幸的是,当我只需要一个结果时,它会返回两个结果,那么如何避免在查询结果中使用nvarchar转换为datetime结果呢?解决方案: declare @x nvarchar(50) SET @x = '2006-11-11' SELECT dt FROM T
declare @x nvarchar(50) = '2011-11-11'
select convert(datetime, @x)
SELECT * FROM T
WHERE dt > @x
但不幸的是,当我只需要一个结果时,它会返回两个结果,那么如何避免在查询结果中使用nvarchar转换为datetime结果呢?解决方案:
declare @x nvarchar(50)
SET @x = '2006-11-11'
SELECT dt FROM T WHERE dt > convert(datetime, @x)
问候阿里·穆罕默德请注意,这将根据服务器设置或登录设置给出不同的结果。为什么不将@x声明为datetime='20111101'