求助:繁体下日期转换失败,否则要死人了

hustwjz 2005-03-12 04:11:23
select Model, WorkNO, SCNO, PCount, Creator, SNPrefix, SNSuffix, CounterLen, nStart, nEnd, T_SNID, CreateTime from T_SNTable
where (CreateTime between '2005/1/12' and '2005/3/12 下午 11:59:59')

在查询分析器中执行时出现错误提示

char类型转换为datetime 类型失败
...全文
113 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2005-03-16
  • 打赏
  • 举报
回复
查询分析器(sql)支持的日期格式参考convert函数中的日期处理部分
zjcxc 元老 2005-03-14
  • 打赏
  • 举报
回复
查询分析器不认识这种格式
hustwjz 2005-03-14
  • 打赏
  • 举报
回复
各位大哥,我用delphi写程序,用里面的TDateTimePicker选择日期,然后自动生成查询的过滤条件。在Delphi中有一个函数叫做DateTimeToStr,他可以按照当地的时间格式将日期转换为字符串。在繁体中文中,日期时间就会自动转换为
'2005/3/12 下午 11:59:59'
难道查询分析器中好像不识别这种格式,而仅仅识别所谓的标准的格式?
paoluo 2005-03-12
  • 打赏
  • 举报
回复
呵,邹老大的语句错了点,改一下。

select cast(
replace(replace(N'2005/3/12 下午 11:59:59',N' 上午 ',N' '),N' 下午 ',N' ')
+case charindex(N'下午','2005/3/12 下午 11:59:59')
when 0 then N' PM' else ' AM' end --这里PM改成AM,AM改成PM
as datetime)
zjcxc 元老 2005-03-12
  • 打赏
  • 举报
回复
select cast(
replace(replace(N'2005/3/12 下午 11:59:59',N' 上午 ',N' '),N' 下午 ',N' ')
+case charindex(N'下午','2005/3/12 下午 11:59:59')
when 0 then N' AM' else ' PM' end
as datetime)

--结果:2005-03-12 23:59:59.000
remote_peng 2005-03-12
  • 打赏
  • 举报
回复
用convert函數轉換一下吧
lsxaa 2005-03-12
  • 打赏
  • 举报
回复
先把

'2005/1/12' '2005/3/12 下午 11:59:59' 转换成标准的日期就行了?
paoluo 2005-03-12
  • 打赏
  • 举报
回复
CreateTime的起始时间是用户输入的??

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧