微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sqlserver获取日期时间

SELECT convert ( varchar ,getdate(),100) -- mon dd yyyy hh:mmAM (or PM)
-- Oct 2 2008 11:01AM
SELECT convert ( varchar ,101) -- mm/dd/yyyy - 10/02/2008
SELECT convert ( varchar ,102) -- yyyy.mm.dd -- 2008.10.02
SELECT convert ( varchar ,103) -- dd/mm/yyyy
SELECT convert ( varchar ,104) -- dd.mm.yyyy
SELECT convert ( varchar ,105) -- dd-mm-yyyy
SELECT convert ( varchar ,106) -- dd mon yyyy
SELECT convert ( varchar ,107) -- mon dd,yyyy
SELECT convert ( varchar ,108) -- hh:mm:ss
SELECT convert ( varchar ,109) -- mon dd yyyy hh:mm:ss:mmmAM (or PM)
-- Oct 2 2008 11:02:44:013AM
SELECT convert ( varchar ,110) -- mm-dd-yyyy
SELECT convert ( varchar ,111) -- yyyy/mm/dd
SELECT convert ( varchar ,112) -- yyyymmdd
SELECT convert ( varchar ,113) -- dd mon yyyy hh:mm:ss:mmm
-- 02 Oct 2008 11:02:07:577
SELECT convert ( varchar ,114) -- hh:mm:ss:mmm(24h)
SELECT convert ( varchar ,120) -- yyyy-mm-dd hh:mm:ss(24h)
SELECT convert ( varchar ,121) -- yyyy-mm-dd hh:mm:ss.mmm
SELECT convert ( varchar ,126) -- yyyy-mm-ddThh:mm:ss.mmm
-- 2008-10-02T10:52:47.513
-- 利用字符串函数创建不同的日期格式
SELECT replace ( convert ( varchar ,111), '/' , ' ' ) -- yyyy mm dd
SELECT convert ( varchar (7),126) -- yyyy-mm
SELECT right ( convert ( varchar ,106),8) -- mon yyyy
go
--通用的日期转换函数CREATE FUNCTION dbo.fnFormatDate (@Datetime DATETIME,@FormatMask VARCHAR(32))RETURNS VARCHAR(32)AS
BEGIN
DECLARE @StringDate VARCHAR (32)
SET @StringDate = @FormatMask
IF (CHARINDEX ( 'YYYY' ,@StringDate) > 0)
SET @StringDate = REPLACE (@StringDate, 'YYYY' ,DATENAME(YY,@Datetime))
IF (CHARINDEX ( 'YY' ,@StringDate) > 0)
SET @StringDate = REPLACE (@StringDate, 'YY' , RIGHT (DATENAME(YY,@Datetime),2))
IF (CHARINDEX ( 'Month' ,@StringDate) > 0)
SET @StringDate = REPLACE (@StringDate, 'Month' ,DATENAME(MM,@Datetime))
IF (CHARINDEX ( 'MON' ,@StringDate COLLATE sql_latin1_General_CP1_CS_AS)>0)
SET @StringDate = REPLACE (@StringDate, 'MON' , LEFT ( UPPER (DATENAME(MM,@Datetime)),3))
IF (CHARINDEX ( 'Mon' ,@StringDate) > 0)
SET @StringDate = REPLACE (@StringDate, 'Mon' , LEFT (DATENAME(MM,3))
IF (CHARINDEX ( 'MM' ,@StringDate) > 0)
SET @StringDate = REPLACE (@StringDate, 'MM' , RIGHT ( '0' + CONVERT ( VARCHAR ,DATEPART(MM,2))
IF (CHARINDEX ( 'M' ,@StringDate) > 0)
SET @StringDate = REPLACE (@StringDate, 'M' , CONVERT ( VARCHAR ,@Datetime)))
IF (CHARINDEX ( 'DD' ,@StringDate) > 0)
SET @StringDate = REPLACE (@StringDate, 'DD' , right ( '0' +DATENAME(DD,2))
IF (CHARINDEX ( 'D' ,@StringDate) > 0)
SET @StringDate = REPLACE (@StringDate, 'D' ,DATENAME(DD,@Datetime))
RETURN @StringDate
END
GO
 
 
获取年月,不获取
1.年月格式为20139,不带“0”
SELECT CAST(DATEPART(YEAR,m.YMD)AS VARCHAR)+CAST(DATEPART(MONTH,m.YMD) AS VARCHAR) As YMD from M_CALENDAR m
select substring((convert(varchar(7),MC.YMD,112)),1,6) AS   YMD from M_CALENDAR MC
select convert(nvarchar(6),112)  AS   YMD from M_CALENDAR MC
2.年月格式为201309,带“0”
select replace(convert(varchar(7),m.YMD,126),'-','') As YMD from M_CALENDAR m
select CONVERT(NVARCHAR(6),TK.SYSDATE,112) from T_KET TK
 
3.获取去年今天的年月日(将今天的日期往前推一年)
select convert(varchar,dateadd(year,-1,getdate()),23)
 
获取当前的星期
select datename(weekday,getdate())
 
通过当前日期来获取这个月的天数
select day(dateadd(mm,'2013-11-01')-day('2013-11-01'))

以前每次格式化日期都要通过字符串转换函数是转换,比较麻烦,像这样写成函数调用起来就方便多了:
示例:
SELECT dbo.fnFormatDate (getdate(),'MM/DD/YYYY')  --03/06/2011
 
替换:
SELECT  REPLAC('126ABC544','ABC','aaa');

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐