如:'2012-03-18'
'20120318'
'201203181513'
'2012-03-18 15:13'
11 个解决方案
#1
Convert函数
#3
and (CONVERT(date, oh.CREATE_DATE, 23)>=CONVERT(date, '201203017', 23)
and CONVERT(date, oh.CREATE_DATE, 23)<=CONVERT(date, '201203017', 23))
用convert报错,
消息 241,级别 16,状态 1,第 1 行
从字符串转换日期和/或时间时,转换失败。
and CONVERT(date, oh.CREATE_DATE, 23)<=CONVERT(date, '201203017', 23))
用convert报错,
消息 241,级别 16,状态 1,第 1 行
从字符串转换日期和/或时间时,转换失败。
#5
定义和用法
CONVERT() 函数是把日期转换为新数据类型的通用函数。
CONVERT() 函数可以用不同的格式显示日期/时间数据。
CONVERT() 函数是把日期转换为新数据类型的通用函数。
CONVERT() 函数可以用不同的格式显示日期/时间数据。
#6
cast(col as datetime)
#7
你这样的数据貌似不规则.需要进行一些转换.以下仅仅是针对你目前的数据进行的转换.不排除你还存在其他什么格式的数据.
create table tb(col varchar(20))
insert into tb values('2012-03-18')
insert into tb values('20120318')
insert into tb values('201203181513')
insert into tb values('2012-03-18 15:13')
go
select col,col_time = (case when len(col) > 8 and charindex('-',col) = 0
then cast(substring(col,1,4) + '-' + substring(col,5,2) + '-' + substring(col,7,2) + ' ' + substring(col,9,2) + ':' + substring(col,11,2) as datetime)
else cast(col as datetime)
end)
from tb
drop table tb
/*
col col_time
-------------------- ------------------------------------------------------
2012-03-18 2012-03-18 00:00:00.000
20120318 2012-03-18 00:00:00.000
201203181513 2012-03-18 15:13:00.000
2012-03-18 15:13 2012-03-18 15:13:00.000
(所影响的行数为 4 行)
*/
#8
可以用between and 啊。我这么做过、lz可以试试、
#9
col col_time -------------------- ------------------------------------------------------ 2012-03-18 2012-03-18 00:00:00.00020120318 2012-03-18 00:00:00.000201203181513 2012-03-18 15:13:00.0002012-03-18 15:13 2012-03-18 15:13:00.000
需要把col_time varchar类型 更改为datatime 类型怎么操作
需要把col_time varchar类型 更改为datatime 类型怎么操作
#10
select CAST(date1 as date) from dbo.date11
#11
select CAST(date1 as date) from dbo.date11
#1
Convert函数
#2
#3
and (CONVERT(date, oh.CREATE_DATE, 23)>=CONVERT(date, '201203017', 23)
and CONVERT(date, oh.CREATE_DATE, 23)<=CONVERT(date, '201203017', 23))
用convert报错,
消息 241,级别 16,状态 1,第 1 行
从字符串转换日期和/或时间时,转换失败。
and CONVERT(date, oh.CREATE_DATE, 23)<=CONVERT(date, '201203017', 23))
用convert报错,
消息 241,级别 16,状态 1,第 1 行
从字符串转换日期和/或时间时,转换失败。
#4
#5
定义和用法
CONVERT() 函数是把日期转换为新数据类型的通用函数。
CONVERT() 函数可以用不同的格式显示日期/时间数据。
CONVERT() 函数是把日期转换为新数据类型的通用函数。
CONVERT() 函数可以用不同的格式显示日期/时间数据。
#6
cast(col as datetime)
#7
你这样的数据貌似不规则.需要进行一些转换.以下仅仅是针对你目前的数据进行的转换.不排除你还存在其他什么格式的数据.
create table tb(col varchar(20))
insert into tb values('2012-03-18')
insert into tb values('20120318')
insert into tb values('201203181513')
insert into tb values('2012-03-18 15:13')
go
select col,col_time = (case when len(col) > 8 and charindex('-',col) = 0
then cast(substring(col,1,4) + '-' + substring(col,5,2) + '-' + substring(col,7,2) + ' ' + substring(col,9,2) + ':' + substring(col,11,2) as datetime)
else cast(col as datetime)
end)
from tb
drop table tb
/*
col col_time
-------------------- ------------------------------------------------------
2012-03-18 2012-03-18 00:00:00.000
20120318 2012-03-18 00:00:00.000
201203181513 2012-03-18 15:13:00.000
2012-03-18 15:13 2012-03-18 15:13:00.000
(所影响的行数为 4 行)
*/
#8
可以用between and 啊。我这么做过、lz可以试试、
#9
col col_time -------------------- ------------------------------------------------------ 2012-03-18 2012-03-18 00:00:00.00020120318 2012-03-18 00:00:00.000201203181513 2012-03-18 15:13:00.0002012-03-18 15:13 2012-03-18 15:13:00.000
需要把col_time varchar类型 更改为datatime 类型怎么操作
需要把col_time varchar类型 更改为datatime 类型怎么操作
#10
select CAST(date1 as date) from dbo.date11
#11
select CAST(date1 as date) from dbo.date11