“从字符串转换日期和/或时间”问题

时间:2019-05-02 20:45:33

标签: sql sql-server tsql

我创建了一个临时表,需要在其中过滤Effective_Date >= 2018-05-01。我尝试过使用字符类型(DATETIME2)和WHERE条件的不同变体,但是得到以下错误消息:

  

Msg 241,第16级,状态1,第164行   从字符串转换日期和/或时间时转换失败。

DROP TABLE #EarnedPremium
GO
CREATE TABLE #EarnedPremium
       ([Policy_Number] VARCHAR(250)
      ,[Effective_Date] DATETIME2
      ,[Earned_Premium] MONEY
       )
GO      
INSERT INTO #EarnedPremium
SELECT 
      Policy_Number
      ,Effective_Date
      ,Earned_Premium
FROM dbo.AGG_EarnedPremium
WHERE Effective_Date >= '%2018-05-01 00:00:00.0000000%'

SELECT * FROM #EarnedPremium

任何建议将不胜感激!

1 个答案:

答案 0 :(得分:1)

%用于LIKE,后者是用于比较模式匹配字符串的运算符。

您要根据订单比较日期。比较字符串以匹配模式并基于时间比较日期确实彼此无关。

仅使用日期比较:

WHERE Effective_Date >= '2018-05-01'