字符串转换成datetime

Leon_He2014 2011-09-30 12:54:59
'21/Sep/2011:23:51:44'

这种样子的字符串如何转换成数据库中的datetime类型?
有没有直接用Convert函数的方式。
最好是能在SSIS中处理的时候就实现(这数据是我从文本文件中通过SSIS获取到)。
或者放在数据库里之后用函数来实现。
...全文
195 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Leon_He2014 2011-09-30
  • 打赏
  • 举报
回复
看来我把 SET LANGUAGE us_english 给忘了。
[Quote=引用 3 楼 roy_88 的回复:]

SQL code
SET LANGUAGE us_english
go
DECLARE @dt NVARCHAR(20)
SET @dt='21/Sep/2011:23:51:44'

SELECT CAST(LEFT(@dt,CHARINDEX(':',@dt)-1) AS DATETIME)+RIGHT(@dt,CHARINDEX('/',REVERSE(@dt))-6)

--OR


……
[/Quote]
-晴天 2011-09-30
  • 打赏
  • 举报
回复
declare @dt datetime
set language english
set @dt='21/Sep/2011 23:51:44' ----你这儿多了一个引号
set language 简体中文
select @dt
/*
Changed language setting to us_english.
已将语言设置更改为 简体中文。

-----------------------
2011-09-21 23:51:44.000

(1 行受影响)

*/
-晴天 2011-09-30
  • 打赏
  • 举报
回复
Changed language setting to us_english.
已将语言设置更改为 简体中文。

-----------------------
2011-09-21 23:51:44.000

(1 行受影响)

中国风 2011-09-30
  • 打赏
  • 举报
回复
SET LANGUAGE us_english
go
DECLARE @dt NVARCHAR(20)
SET @dt='21/Sep/2011:23:51:44'

SELECT CAST(LEFT(@dt,CHARINDEX(':',@dt)-1) AS DATETIME)+RIGHT(@dt,CHARINDEX('/',REVERSE(@dt))-6)

--OR


SELECT CAST(LEFT(@dt,CHARINDEX(':',@dt)-1) AS DATETIME)+RIGHT(@dt,8)
Leon_He2014 2011-09-30
  • 打赏
  • 举报
回复
SELECT CAST('21/Sep/2011' AS DATETIME)


消息 241,级别 16,状态 1,第 1 行
从字符串转换日期和/或时间时,转换失败。

执行不了!!!
[Quote=引用 1 楼 roy_88 的回复:]

需要分拆這個字符如下

SET LANGUAGE us_english--定義語言
go
SELECT CAST('21/Sep/2011' AS DATETIME)
[/Quote]
中国风 2011-09-30
  • 打赏
  • 举报
回复
需要分拆這個字符如下

SET LANGUAGE us_english--定義語言
go
SELECT CAST('21/Sep/2011' AS DATETIME)

34,593

社区成员

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

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