如何将float类型的日期(如20030105)转换成datetime类型(如2003-01-05)?

vbasten 2003-01-08 09:44:11
如何将float类型的日期(如20030105)转换成datetime类型(如2003-01-05)?
我用cast 和convert试了,可是不行,为什么啊?
...全文
211 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
glboy 2003-01-08
  • 打赏
  • 举报
回复
TO alexwoowf(吴)
上面转换的两个都是转为datetime类型的
glboy 2003-01-08
  • 打赏
  • 举报
回复
因为你SQL SERVER中的datetime类型实质上是浮点型,其整数部分存储的是日期,小数部分存储的是时间。

你可以考虑更改该字段的数据类型设计

若只是要返回一个结果集,只要convert(varchar(10),datatime,120)就可以了。
alexwoowf 2003-01-08
  • 打赏
  • 举报
回复
要得到datetime类型(带时间)的话,glboy 就是你要的;
如果转换成2003-01-08的话, 就是阿土哥的了!
vbasten 2003-01-08
  • 打赏
  • 举报
回复
谢了。再请问:我不想要小时分钟,即只想要2003-01-05,怎么办呢?
glboy 2003-01-08
  • 打赏
  • 举报
回复
如果日期中的月或日为个位数的时候,都还有问题,在进一步改进中。
如:2002217,2002021
glboy 2003-01-08
  • 打赏
  • 举报
回复
select convert(datetime,cast(20020217 as varchar(10)),120)
nielisheng 2003-01-08
  • 打赏
  • 举报
回复
SELECT CAST(left(field, 4) + '-' + substring(field, 5,2) + '-' + right(field,2) AS DateTime)

34,590

社区成员

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

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