从SQL中的连锁属性查询日期

时间:2014-11-07 19:30:31

标签: mysql sql-server

好的SQL大师......我需要一些帮助。我有一个属性ReportBatchID,它是日期和其他一些数字的连接值。例如,所有ReportBatchID值都采用“201105115485452652”格式。我需要从该值的前8位数中选择左侧以获取日期,然后选择所有超过90天的日期。我可以使用

select Left (ReportBatchID, 8) from [Table]

将它拉为日期,但是当我使用

where ReportBatchID < CONVERT (VARCHAR(10), DATEADD(DAY, -90, GETDATE()),121)

在我的选择之后我收到错误“将数据类型varchar转换为数字时出错”。有谁知道怎么做?

1 个答案:

答案 0 :(得分:0)

Dates子句中使用where时始终在两侧使用正确投射

where CAST(LEFT(ReportBatchID ,8) as DATE) < 
CAST(DATEADD(DAY, -90, GETDATE()) as DATE)



 select CAST( DATEADD(DAY, -90, GETDATE()) as DATE)


 select CAST(LEFT(201105115485452652,8) as DATE)

<强>输出

2014-08-10

2011-05-11