我的表中RESV_CENTER_Date列有一个特定的日期格式,这很难理解,我需要搜索特定月份的数据。我无法使用Cast-it进行搜索,这给我一个错误提示。我粘贴了记录以了解该日期格式。我想以日期格式将其视为到达或离开的日期。
***conversion failed when converting date and/or time from character string.***
s_id ARRIVAL_DATE DEPARTURE_DATE RESV_CENTER_Date
06385 [2017/06/16] [2017/11/17] [2017.11.17 AD at 10:23:08 GMT]
答案 0 :(得分:1)
日期没有格式...这意味着您将其存储为varchar
,这在字符串中的at
单词中很明显。
您只需要 date 部分... replace(right(left(RESV_Center_date,11),10),'.','/')
这里正在发挥作用:
declare @RESV_CENTER_Date varchar(64) = '[2017.11.17 AD at 10:23:08 GMT]'
select replace(right(left(@RESV_CENTER_Date,11),10),'.','/')
--or if the brackets aren't there
set @RESV_CENTER_Date = '2017.11.17 AD at 10:23:08 GMT'
select replace(left(@RESV_CENTER_Date,10),'.','/')
因此,对于您的where
子句...这是不可维护的...
where cast(replace(right(left(RESV_CENTER_Date,11),10),'.','/') as date) between '2017-05-05' and '2017-06-06'