急!为什么我把SQL的datetime改为varchar类型后数据被破坏了? 类似这样的时间类型 20:44:33全部显示为 12 30 18,好郁闷。我都用8字节代替,原先datetime(8)现在为varchar(8)好像之前可以这样的!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不要直接改用convert(varchar(10),col,120) --日期转换参数,值得收藏select CONVERT(varchar, getdate(), 120 )2004-09-12 11:06:08select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')20040912110608select CONVERT(varchar(12) , getdate(), 111 )2004/09/12select CONVERT(varchar(12) , getdate(), 112 )20040912select CONVERT(varchar(12) , getdate(), 102 )2004.09.12其它我不常用的日期格式转换方法:select CONVERT(varchar(12) , getdate(), 101 )09/12/2004select CONVERT(varchar(12) , getdate(), 103 )12/09/2004select CONVERT(varchar(12) , getdate(), 104 )12.09.2004select CONVERT(varchar(12) , getdate(), 105 )12-09-2004select CONVERT(varchar(12) , getdate(), 106 )12 09 2004select CONVERT(varchar(12) , getdate(), 107 )09 12, 2004select CONVERT(varchar(12) , getdate(), 108 )11:06:08select CONVERT(varchar(12) , getdate(), 109 )09 12 2004 1select CONVERT(varchar(12) , getdate(), 110 )09-12-2004select CONVERT(varchar(12) , getdate(), 113 )12 09 2004 1select CONVERT(varchar(12) , getdate(), 114 )11:06:08.177 declare @time datetime set @time='20:44:33'select convert(varchar(8),@time,108)/*--------20:44:33(1 行受影响)*/ 这是因为你的DATETIME类型的数据值为:18XX-12-30 20:44:33当数据类型变成:VARCHAR(50)时,变成:12 30 18XX 8:44PM由于变成了VARCHAR(8),于是只截取前8位:12 30 18 在线等,求平均数高效sql语句 关于一个分组统计查询的问题。。。。。。 sql 标志种子的问题 求解:从数据类型 varchar 转换为 bigint 时出错 我这样写的IF语句错在哪里呢?请大哥大姐们帮帮忙 MS-SQL,是否有函数可以获取当前SP函数名。 求问有关check约束 检查表满足条件的行数的语句 奇怪问题,难道是sqlserver2005的BUG? 视图和索引视图的区别??? 求问数据分组显示问题 很急啊 SQL SERVER并发有问题?老是A步骤没完就开始B步骤了
用convert(varchar(10),col,120)
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20040912110608select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12select CONVERT(varchar(12) , getdate(), 112 )
20040912select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12其它我不常用的日期格式转换方法:select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004select CONVERT(varchar(12) , getdate(), 103 )
12/09/2004select CONVERT(varchar(12) , getdate(), 104 )
12.09.2004select CONVERT(varchar(12) , getdate(), 105 )
12-09-2004select CONVERT(varchar(12) , getdate(), 106 )
12 09 2004select CONVERT(varchar(12) , getdate(), 107 )
09 12, 2004select CONVERT(varchar(12) , getdate(), 108 )
11:06:08select CONVERT(varchar(12) , getdate(), 109 )
09 12 2004 1select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004select CONVERT(varchar(12) , getdate(), 113 )
12 09 2004 1select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177
set @time='20:44:33'select convert(varchar(8),@time,108)/*--------
20:44:33(1 行受影响)
*/
当数据类型变成:VARCHAR(50)时,变成:12 30 18XX 8:44PM
由于变成了VARCHAR(8),于是只截取前8位:12 30 18