用char(10)存储日期,为什么可以直接与sybase 15.7中的<,>,=比较

时间:2018-08-30 09:42:03

标签: sybase sybase-ase

#report_tmp中的term_date是char(10),当使用<,>时,它可以按预期工作, 这种比较方法在sybase中可靠吗?

    declare @last_year_end char(10)

SELECT @last_year_end=convert(varchar,@cyear -1)+'/12'+'/31'


update #report_tmp
set remark = @note1
where term_date != '' and term_date <= @last_year_end

1 个答案:

答案 0 :(得分:2)

我宁愿编写以下代码:

declare @cur_year datetime

SELECT @cur_year = convert(datetime, convert(varchar, @cyear) + '/01'+'/01', 111)

update #report_tmp set remark = @note1 
where term_date != '' and term_date < @cur_year

在这里,当您将varchar隐式转换为date或datetime时,您无需依赖当前的语言环境设置。