declare @date nvarchar(8)
declare @year nvarchar(4)
declare @month nvarchar(2)
set @year=year(getdate())
set @month=month(getdate())
set @date=@year+'-'+@month
select @date输出结果:2005-11
declare @year nvarchar(4)
declare @month nvarchar(2)
set @year=year(getdate())
set @month=month(getdate())
set @date=@year+'-'+@month
select @date输出结果:2005-11
解决方案 »
- 触发器问题
- 大家讨论一下serializable 和 snapshot那个的效率跟高,用哪个好?
- 一个特殊的sql语句?有关于sum与case的用法
- 有关TOP的问题
- 巨简单的菜鸟问题
- SQL 2012系统管理方面问题,内存及客户资源管理
- SqlServer中如何使用Session级别的变量
- 由于设计上的失误。把日期的三个部分分别放到了3个不同的字段,现在想查询介于两个日期段中间的数据出现了问题,能不能将这三个字段在查
- 那位是powerdesigner的高手,能不能告诉我那里有pd8的书可以下载的?
- 麻烦大家一起给我想个好的解决方案好吗?谢谢
- 触发器里调用存储过程,怎么写?
- insert语句中的into是干什么用的?
只有在界面上显示时 先取出时间字符串 再substring 或者在SQL语句里面Substring再显示在界面
update query_sh set 出货日期=year(出货日期) & '-' & month(出货日期)这种写法不对啊,请问大家应该怎么写???
你可以直接保存出货日期,以后要用时忽略日就可以嘛!
update query_sh set 出货日期=出货日期
可以这样使用:
select convert(varchar(7),出货日期,120) from query_sh
set @date='2005-03-25'
select cast(year(@date)as varchar)+'-'+cast(month(@date)as varchar)/*
2005-3(所影响的行数为 1 行)
*/
update query_sh set 出货日期=year(出货日期) & '-' & month(出货日期)这种写法不对啊,请问大家应该怎么写???是这样的,我把出货日期由smalldatetime类型改为varchar类型了
2005-3-6则显示为Mar 6 2005 12:00AM
所以我在查询分析器里写update query_sh set 出货日期=year(出货日期) & '-' & month(出货日期),想把他们更新成2005-3,可是不对啊。
update query_sh set 出货日期=substring(出货日期,7,4)+'-'+case 出货日期 when 'Jan' then '1' when 'Feb' then 2 when 'Mar' then 2 end
--将第7-11五个字符转换为数字,再转换为字符型作为年
--将第5、6两个字符转换为数字,再转换为字符型作为月create table query_sh(出货日期 varchar(20))
insert into query_sh
select 'Mar 6 2005 12:00AM'union all
select 'Mar 7 2005 12:00AM'union all
select 'Mar 8 2005 12:00AM'union all
select 'Mar 9 2005 12:00AM'union all
select 'Mar 10 2005 12:00AM'update query_sh
set 出货日期=cast(cast(substring(出货日期,7,5)as int)as varchar)+'-'+cast(cast(substring(出货日期,5,2)as int)as varchar)select * from query_shdrop table query_sh
/*
出货日期
--------------------
2005-6
2005-7
2005-8
2005-9
2005-10(所影响的行数为 5 行)
*/
update query_sh set T1=convert(varchar(7),出货日期,120)
再把出貨日期欄位刪掉,T1再改成出貨日期就可以了,以后也趕接用VARCHAR型