sql 日期数据类型转换
比如 我在数据库中存的有好几个字段,有的格式 2013-08-08 14:15:12
还有 2013-10-22 还有20130101 格式的 我想统一时间各位为
2013-10-10这个样式的!! 在线就指导 ! 其中格式为20130101个数据类型为char SQL. 日期格式
[解决办法]
select substring(日期列,1,4)+'-'+substring(日期列,5,2)+'-'+substring(日期列,7,2)
[解决办法]
select substring(日期列,1,4)+'-'+substring(日期列,5,2)+'-'+substring(日期列,7,2)
from tb
where isdate(日期列)=1--代表是日期类型或者可以转换成日期类型
对于isdate=0的数据,需要手动修改
[解决办法]
做了一个实验,是这样吗:
create table tb(t1 datetime,t2 datetime,t3 char(20))
insert into tb
select '2013-08-08 14:15:12','2013-10-22','20130101'
select convert(varchar(10),CAST(t1 as datetime),120),
convert(varchar(10),CAST(t2 as datetime),120),
convert(varchar(10),CAST(t3 as datetime),120)
from tb
/*
(无列名) (无列名) (无列名)
2013-08-082013-10-222013-01-01
*/
[解决办法]
select convert(varchar(10),CAST('20130101' as datetime),120)
[解决办法]
select substring(日期列,1,4)+substring(日期列,5,2)+substring(日期列,7,2)
[解决办法]
数据存储格式应该在设计的时候就弄好,没有规则的存数据总有一天会让你奔溃的
[解决办法]
DECLARE @a TABLE
(
a NVARCHAR(50),
b NVARCHAR(50),
c char(8)
)
INSERT @a
SELECT '2013-08-08 14:15:12','2013-10-22','20130101'
SELECT
CONVERT(VARCHAR(50),CAST(a AS DATETIME),112) a,
CONVERT(VARCHAR(50),CAST(b AS DATETIME),112) b,
CONVERT(VARCHAR(50),CAST(c AS DATETIME),112) c
FROM @a
-------------------------------
abc
201308082013102220130101
先转换,再更新
[解决办法]
create table tb(t1 datetime,t2 datetime,t3 char(20))
insert into tb
select '2013-08-08 14:15:12','2013-10-22','20130101'
select convert(varchar(10),CAST(t1 as datetime),112),
convert(varchar(10),CAST(t2 as datetime),112),
convert(varchar(10),CAST(t3 as datetime),112)
from tb
/*
(无列名) (无列名) (无列名)
201308082013102220130101
*/
[解决办法]
这个是指显示的时候的格式