我的一个数据库表里面,将日期存储为字符串格式。
由于数据都是从excel中导入的,所以数据的格式不一致。
比如,同一个日期,有的是“2009-03-01”,有的却是“2009-3-1”。
我该如何才能将“2009-3-1”调整成为“2009-03-01”?
由于数据都是从excel中导入的,所以数据的格式不一致。
比如,同一个日期,有的是“2009-03-01”,有的却是“2009-3-1”。
我该如何才能将“2009-3-1”调整成为“2009-03-01”?
调试欢乐多
UPDATE TB SET COL=CONVERT(VARCHAR(10),CONVERT(DATETIME,COL),120)
fdate=convert(varchar,cast(fdate as datetime),23)
select convert(varchar(10),'2009-09-8',120) ---1
----------
2009-09-8select convert(varchar(10),cast('2009-09-8' as datetime),120) --2
----------
2009-09-08
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([col] varchar(50))
insert [tb]
select '2008-8-8'update tb set col=convert(varchar(10),cast(col as datetime),120)
select * from tb/*
col
--------------------------------------------------
2008-08-08(1 行受影响)
*/
我用以上代码测试,出现下面的错误提示。
列名 'useddate' 无效。
---------------------------分割线---------------------------
update labrecord
set useddate=convert(varchar(10),cast(useddate as datetime),120)
用以上代码,提示下面错误。
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。我的useddate是我要转变的列,其类型是varchar,长度为10。
update tb set 时间列=convert(varchar,时间列,120)
我用以上代码测试,出现下面的错误提示。
列名 'useddate' 无效。 第一句,你表都没有,当然无效
select convert(varchar(10),cast(useddate as datetime),120) FROM TB---------------------------分割线---------------------------
update labrecord
set useddate=convert(varchar(10),cast(RTRIM(LTRIM(useddate)) as datetime),120)
用以上代码,提示下面错误。 从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。你的字段是CHAR类型的吗?字段长度是多少?update labrecord
set useddate=convert(varchar(10),cast(RTRIM(LTRIM(useddate)) as datetime),120) 这样试试