sqlserver datetime轉換成帶格式的字符串,sqlserver datetime轉換成固定格式的字符串,sqlserver datetime轉換成字符串,sqlserver 時間類型與字符串之間的轉換
咱們在項目開發中常常用到sqlserver數據庫, 特別是在作.NET項目時更是首選sqlserver數據庫;由於它們是一家嘛。在項目中時間與字符串以前的轉換更是常常用到,普通的轉換我想你們也都知 道,可是當遇到一些轉換成某種格式的字符串時就顯得有點力不從心了,這一點我也感受到了,用到的時候只能在網上找,又不太容易記住,因此我就蒐集整理了一 些 sqlserver DateTime轉換的相關資料,放在個人上海軟件開發網站裏面,方便使用,也但願能幫助你們,若是你們有其它好用的,必定要留言告訴我哦,共同研究 算法
系統當前時間:select getdate() as sysdate 輸出結果:2012-12-20 16:14:30.200 sql
select CONVERT(varchar(12),getdate(),100) as "100"
輸出結果:12 20 2012 數據庫
select CONVERT(varchar(12),getdate(),101) as "101"
輸出結果:12/20/2012 sqlserver
select CONVERT(varchar(12),getdate(),102) as "102"
輸出結果:2012.12.20 網站
select CONVERT(varchar(12),getdate(),103) as "103"
輸出結果:20/12/2012 .net
select CONVERT(varchar(12),getdate(),104) as "104"
輸出結果:20.12.2012 server
select CONVERT(varchar(12),getdate(),105) as "105"
輸出結果:20-12-2012 開發
select CONVERT(varchar(12),getdate(),106) as "106"
輸出結果:20 12 2012 字符串
select CONVERT(varchar(12),getdate(),107) as "107"
輸出結果:12 20, 2012 get
select CONVERT(varchar(12),getdate(),108) as "108"
輸出結果:16:14:30
select CONVERT(varchar(12),getdate(),109) as "109"
輸出結果:12 20 2012
select CONVERT(varchar(12),getdate(),110) as "110"
輸出結果:12-20-2012
select CONVERT(varchar(12),getdate(),111) as "111"
輸出結果:2012/12/20
select CONVERT(varchar(12),getdate(),112) as "112"
輸出結果:20121220
select CONVERT(varchar(12),getdate(),113) as "113"
輸出結果:20 12 2012 1
select CONVERT(varchar(12),getdate(),114) as "114"
輸出結果:16:14:30:200
--------------------------------------------------
一、格式化當前日期
DECLARE @DATETIME DATETIME --定義一個DATETIME的變量
set @DATETIME=getdate(); --獲取系統當前時間,並賦值給@DATETIME字段
--短日期格式轉換:yyyy-m-d
SELECT REPLACE(CONVERT(varchar(10),@DATETIME,120),N'-0','-')
輸出結果:2012-12-20
--長日期格式轉換:yyyy年mm月dd日
SELECT STUFF(STUFF(CONVERT(char(8),@DATETIME,112),5,0,N'年'),8,0,N'月')+N'日'
輸出結果:2012年12月20日
--長日期格式轉換:yyyy年m月d日
SELECT DATENAME(Year,@DATETIME)+N'年'+
CAST(DATEPART(Month,@DATETIME)AS varchar)+N'月'+
DATENAME(Day,@DATETIME)+N'日'
輸出結果:2012年12月20日
--完整日期+時間格式轉換:yyyy-mm-ddhh:mi:ss:mmm
SELECT CONVERT(char(11),@DATETIME,120)+CONVERT(char(12),@DATETIME,114)
輸出結果:2012-12-20 16:18:22:423
-------------------------------------------------------------------------------
二、日期先後推算處理
DECLARE @DATETIME DATETIME --定義一個DATETIME的變量
DECLARE @NUMBER int
SET @DATETIME = GETDATE() --爲當前DATETIME賦值
SET @NUMBER = 3
--1.指定日期所在周的任意星期幾
--A.星期天作爲一週的第1天
SELECT DATEADD(Day,@NUMBER-(DATEPART(Weekday,@DATETIME)+@@DATEFIRST-1)%7,@DATETIME) AS J
輸出結果:2012-12-19 16:32:05.770
--B.星期一作爲一週的第1天
SELECT DATEADD(Day,@NUMBER-(DATEPART(Weekday,@DATETIME)+@@DATEFIRST-2)%7-1,@DATETIME) AS K
輸出結果:2012-12-19 16:32:05.770
--2.指定日期該年的第一天或最後一天
--A.年的第一天
SELECT CONVERT(char(5),@DATETIME,120)+'1-1' AS A
輸出結果:2012-1-1
--B.年的最後一天
SELECT CONVERT(char(5),@DATETIME,120)+'12-31' AS B
輸出結果:2012-12-31
--3.指定日期所在周的任意一天
SELECT DATEADD(Day,@NUMBER-DATEPART(Weekday,@DATETIME),@DATETIME) AS I
輸出結果:2012-12-18 16:32:05.770
--4.指定日期所在季度的第一天或最後一天
--A.季度的第一天
SELECT CONVERT(DATETIME,CONVERT(char(8),DATEADD(Month,
DATEPART(Quarter,@DATETIME)*3-Month(@DATETIME)-2,@DATETIME),120)+'1') AS C
輸出結果:2012-10-01 00:00:00.000
--B.季度的最後一天(CASE判斷法)
SELECT CONVERT(DATETIME,CONVERT(char(8),DATEADD(Month,
DATEPART(Quarter,@DATETIME)*3-Month(@DATETIME),@DATETIME),120)+
CASE WHEN DATEPART(Quarter,@DATETIME)in(1,4) THEN '31' ELSE '30' END) AS D
輸出結果:2012-12-31 00:00:00.000
--C.季度的最後一天(直接推算法)
SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1+
DATEPART(Quarter,@DATETIME)*3-Month(@DATETIME),@DATETIME),120)+'1') AS E
輸出結果:2012-12-31 00:00:00.000
--5.指定日期所在月份的第一天或最後一天 --A.月的第一天 SELECT CONVERT(DATETIME,CONVERT(char(8),@DATETIME,120)+'1') AS F 輸出結果:2012-12-01 00:00:00.000 --B.月的最後一天 SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@DATETIME),120)+'1') AS G 輸出結果:2012-12-31 00:00:00.000