可以的~~由于时间原因我就不详细举例子了:(你把三个字段的值Cast成Char型! 然后相加,再把它转换成DateTime型! 如:cast((cast(YearField) as Char(4)) + cast(MonthField) as Char(2)) + cast(DayField) as Char(4))) as DateTime)注:以上语句不能保证正确!
Select * from clue where (cast((cast(jbsjn as Char(4)) + '-' + cast(jbsjy as Char(2)) + '-' + cast(jbsjr as Char(2))) as datetime) as NewDate) >='2002-2-2' 报告了在关键字 'as' 附近有语法错误。
Select * from clue where cast((cast(jbsjn as Char(4)) + '-' + cast(jbsjy as Char(2)) + '-' + cast(jbsjr as Char(2))) as datetime) >='2002-2-2'
Select * from clue where cast((cast(jbsjn as Char(4)) + '-' + cast(jbsjy as Char(2)) + '-' + cast(jbsjr as Char(2))) as datetime) >='2002-2-2'
'cast' 附近有语法错误,需要 'AS'。 怎么办呢?:(
你只要把
2002 -> 年的字段
07 -> 月的字段
02 - > 日的字段
select * from tbl1
where convert(datetime,yearfield+monthfield+dayfield) between '2002-3-20' and '2002-4-20'
你只要把
2002 -> 年的字段
07 -> 月的字段
02 - > 日的字段 //版 主的convert(datetime,yearfield+monthfield+dayfield) 好像不行啊~
我测试了一下,如果有更好的解决方法,告诉我一声哦:)
1905-07-31 00:00:00.000
??!
(cast((cast(jbsjn as Char(4)) + '-' + cast(jbsjy as Char(2)) + '-' + cast(jbsjr as Char(2))) as datetime) as NewDate) >='2002-2-2'
报告了在关键字 'as' 附近有语法错误。
cast((cast(jbsjn as Char(4)) + '-' + cast(jbsjy as Char(2)) + '-' + cast(jbsjr as Char(2))) as datetime) >='2002-2-2'
cast((cast(jbsjn as Char(4)) + '-' + cast(jbsjy as Char(2)) + '-' + cast(jbsjr as Char(2))) as datetime) >='2002-2-2'
Select convert(datetime, '2002'+'07'+'28')
Select cast('2002'+'07'+'28' as datetime)
结果:2002-07-28 00:00:00.000
应是:Select convert(datetime,'2002'+'07'+'28')
如果年月日字段安符型的,才可直接加,
Select convert(datetime,'2002'+'07'+'28')
Select cast('2002'+'07'+'28' as datetime)2002-07-08 00:00:00.000