sql server中'14-02-2001 00:00:00'和'1-01-1 00:00:00'格式的varchar如何转换为datetime

iery 2005-07-05 10:11:06
sql server中'14-02-2001 00:00:00'和'1-01-1 00:00:00'格式的varchar如何转换为datetime
...全文
111 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengzulin 2005-07-05
  • 打赏
  • 举报
回复
Declare @S Varchar(20)
Set @S='14-02-2001 00:00:00'

SELECT CHARINDEX('-',@S)
SELECT cast(SUBSTRING(@S,CHARINDEX('-',@S)+1,2)+'-'+SUBSTRING(@S,1,CHARINDEX('-',@S)-1)+right(@S,len(@S)-CHARINDEX('-',@S,CHARINDEX('-',@S)+1)+1) as datetime)
wpmxm 2005-07-05
  • 打赏
  • 举报
回复
cast, convert
结合其它一些函数
子陌红尘 2005-07-05
  • 打赏
  • 举报
回复
1、

declare @d varchar(20)
set @d = '14-02-2001 00:00:00'
select cast(substring(@d,7,4)+'-'+substring(@d,4,3)+left(@d,2)+right(@d,9) as datetime)
paoluo 2005-07-05
  • 打赏
  • 举报
回复
Declare @S Varchar(20)
Set @S='14-02-2001 00:00:00'
Select Cast(SubString(@S,CharIndex('-',@S,CharIndex('-',@S)+1)+1,CharIndex(' ',@S)-CharIndex('-',@S,CharIndex('-',@S)+1)-1)+'-'+SubString(@S,CharIndex('-',@S)+1,CharIndex('-',@S,CharIndex('-',@S)+1)-CharIndex('-',@S)-1)+'-'+Left(@S,CharIndex('-',@S)-1)+Stuff(@S,1,CharIndex(' ',@S)-1,'') As DateTime)
--结果
2001-02-14 00:00:00.000
pbsql 2005-07-05
  • 打赏
  • 举报
回复
'14-02-2001 00:00:00',将月、日位置交换即变成'02-14-2001 00:00:00'再转换

'1-01-1 00:00:00',举的例子不恰当,不知道哪是年、月、日

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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