字符转换日期问题求解!

老七 2010-02-04 03:14:00
求问如何将字符‘091201’转换为日期格式‘2009-12-01’
...全文
100 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
老七 2010-02-04
  • 打赏
  • 举报
回复
select convert(varchar(10),cast(left(fbatchno,4)+'01' as datetime),120) from icinvinitial where left(fbatchno,2)='09' and len(fbatchno)=6 and isdate(left(fbatchno,6))=1

测试成功,结贴
老七 2010-02-04
  • 打赏
  • 举报
回复
谢谢大家,我的数据有问题。
老七 2010-02-04
  • 打赏
  • 举报
回复
select convert(varchar(10),cast(left(fbatchno,6) as datetime),120) from icinvinitial where left(fbatchno,2)='09' and len(fbatchno)=6 and isdate(left(fbatchno,6))=0 --用0,看有沒有資料


服务器: 消息 242,级别 16,状态 3,行 5
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
playwarcraft 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 playwarcraft 的回复:]
試下能不能撈到資料

select left(fbatchno,6)  from icinvinitial
where left(fbatchno,2)='09'
and len(fbatchno)=6
and isdate(left(fbatchno,6))=1

[/Quote]

select left(fbatchno,6) from icinvinitial
where left(fbatchno,2)='09'
and len(fbatchno)=6
and isdate(left(fbatchno,6))=0 --用0,看有沒有資料

百年树人 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 whqrzwh 的回复:]
select convert(varchar(10),cast(left(fbatchno,6) as datetime),120) from icinvinitial where left(fbatchno,2)='09' and len(fbatchno)=6

以上是我的测试语句,出现错误
[/Quote]

报什么错,检查一下数据中是否有不是日期格式的数据?
playwarcraft 2010-02-04
  • 打赏
  • 举报
回复
試下能不能撈到資料

select left(fbatchno,6) from icinvinitial
where left(fbatchno,2)='09'
and len(fbatchno)=6
and isdate(left(fbatchno,6))=1
老七 2010-02-04
  • 打赏
  • 举报
回复
实际字符字段为fbatchno
老七 2010-02-04
  • 打赏
  • 举报
回复
select convert(varchar(10),cast(left(fbatchno,6) as datetime),120) from icinvinitial where left(fbatchno,2)='09' and len(fbatchno)=6

以上是我的测试语句,出现错误
jenny0810 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 josy 的回复:]
SQL codeselectconvert(varchar(10),cast('091201'asdatetime),120)
这样也是可以的
[/Quote]学习
jack15850798154 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 josy 的回复:]
SQL codeselectconvert(varchar(10),cast('20'+'091201'asdatetime),120)/**

----------
2009-12-01

(所影响的行数为 1 行)
**/
[/Quote]
学习一下写法。帮顶!
jack15850798154 2010-02-04
  • 打赏
  • 举报
回复
select substring(convert(varchar(20),convert(datetime,'091201'),120),0,11)
vipper23 2010-02-04
  • 打赏
  • 举报
回复
select convert(varchar(10),convert(datetime,'091201'),120)
----------
2009-12-01


--小F-- 2010-02-04
  • 打赏
  • 举报
回复
select convert(varchar(10),cast('091201' as datetime),120)
nianran520 2010-02-04
  • 打赏
  • 举报
回复
select cast('091201' as datetime)
百年树人 2010-02-04
  • 打赏
  • 举报
回复
select convert(varchar(10),cast('091201' as datetime),120)

这样也是可以的
百年树人 2010-02-04
  • 打赏
  • 举报
回复
select convert(varchar(10),cast('20'+'091201' as datetime),120)

/**

----------
2009-12-01

(所影响的行数为 1 行)
**/
playwarcraft 2010-02-04
  • 打赏
  • 举报
回复
直接转不行?convert(datetime,'091201')

34,576

社区成员

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

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