在SQL Server 2008中,如何将格式为mmddyyyy的字符串转换为datetime

我的目标栏是DateTime

我try 了Convert个和Date个样式值中的大多数,但我收到了一条错误消息:

"将varchar数据类型转换为datetime数据类型导致值超出范围."

推荐答案

OP想要mmddyy,而普通转换不适用于此:

select convert(datetime,'12312009')

Msg 242, Level 16, State 3, Line 1 
The conversion of a char data type to a datetime data type resulted in 
an out-of-range datetime value

所以试试这个:

DECLARE @Date char(8)
set @Date='12312009'
SELECT CONVERT(datetime,RIGHT(@Date,4)+LEFT(@Date,2)+SUBSTRING(@Date,3,2))

输出:

-----------------------
2009-12-31 00:00:00.000

(1 row(s) affected)

Sql相关问答推荐

Stack Exchange站点上的最短帖子(按正文长度计算,用户名为原始发帖(SEDE))

Postgres trunc_date删除一个月

使用占位符向SQL INSERT查询添加 case

SQL -滞后于上一个非重复值

更新其组的日期字段值小于最大日期减go 天数的记录

如何在presto中映射id与名称

如何根据行状态设置正确的标志

根据是否出现过零来筛选数据(跨多行)

表函数的作用域和功能

排除具有部分匹配条件的记录

具有分组条件的不同计数 (DAX)

使用临时表判断记录是否存在 - 如果存在则执行相同的操作

根据是否存在值组合分组并 Select 行

HIVE SQL where 子句未按预期工作

使用日期和间隔作为键加入 Athena 上的表?

如何在 SQL Server 中将 -13422.8450 舍入到 -13422.84

在 BigQuery 数据集中查找表大小和占总数据集大小的百分比

连续几天购买的客户

PlSql 陷入死循环

如何比较同一张表中的行并进行相应更新