首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql 日期数据类型转换,该怎么处理

2013-11-09 
sql 日期数据类型转换比如 我在数据库中存的有好几个字段,有的格式 2013-08-08 14:15:12还有 2013-10-22还

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)
[解决办法]
数据存储格式应该在设计的时候就弄好,没有规则的存数据总有一天会让你奔溃的
[解决办法]
引用:
追问下   如何统一格式为 YYYYMMDD     如 20131001   这种格式的呢? 


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


先转换,再更新
[解决办法]
引用:
追问下   如何统一格式为 YYYYMMDD     如 20131001   这种格式的呢? 


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
*/

[解决办法]
这个是指显示的时候的格式

热点排行