就比如这个2015-11-24 08:46:00.000
我只想得到2015-11,应该怎么做啊?
给你一个function 建立之后 想得到啥就得到啥
获取的语句 select FormatDate(getdate(),'YYYY-MM')
ALTER FUNCTION [dbo].[FormatDate] (@date as datetime, @formatstring as varchar(100) ) RETURNS varchar(100) AS BEGIN declare @datestring as varchar(100) set @datestring=@formatstring --year set @datestring=replace(@datestring, 'yyyy', cast(year(@date) as char(4))) set @datestring=replace(@datestring, 'yy', right(cast(year(@date) as char(4)),2)) --millisecond set @datestring=replace(@datestring, 'ms', replicate('0',3-len(cast(datepart(ms,@date) as varchar(3)))) + cast(datepart(ms, @date) as varchar(3))) --month set @datestring=replace(@datestring, 'mm', replicate('0',2-len(cast(month(@date) as varchar(2)))) + cast(month(@date) as varchar(2))) set @datestring=replace(@datestring, 'm', cast(month(@date) as varchar(2))) --day set @datestring=replace(@datestring, 'dd', replicate('0',2-len(cast(day(@date) as varchar(2)))) + cast(day(@date) as varchar(2))) set @datestring=replace(@datestring, 'd', cast(day(@date) as varchar(2))) --hour set @datestring=replace(@datestring, 'hh', replicate('0',2-len(cast(datepart(hh,@date) as varchar(2)))) + cast(datepart(hh, @date) as varchar(2))) set @datestring=replace(@datestring, 'h', cast(datepart(hh, @date) as varchar(2))) --minute set @datestring=replace(@datestring, 'nn', replicate('0',2-len(cast(datepart(n,@date) as varchar(2)))) + cast(datepart(n, @date) as varchar(2))) set @datestring=replace(@datestring, 'n', cast(datepart(n, @date) as varchar(2))) --second set @datestring=replace(@datestring, 'ss', replicate('0',2-len(cast(datepart(ss,@date) as varchar(2)))) + cast(datepart(ss, @date) as varchar(2))) set @datestring=replace(@datestring, 's', cast(datepart(ss, @date) as varchar(2))) return @datestring END
CAST(DATEPART(YEAR,getdate()) as varchar(4)) +'-'+right('00'+cast(DATEPART(MONTH,getdate()) as varchar(2)),2)
月份还给你补0
存储时间的时候最好存全的
查询显示的时候可以把时间当做字符串处理 取前7位:2016-11。