SQLserver のテーブル table の [datetime] フィールドの値を '2011-11-07 16:41:35.033' から '2011-11-07 00:00:00' に変更し、時、分、秒を削除します。 [datetime] フィールドは datetime タイプである必要があります。 UPDATE table SET [datetime]= Convert(char(11),[datetime],120)
現在の日付を取得し、convert を使用して必要な datetime 形式に変換します。 select CONVERT(varchar(12), getdate(), 112 )
20040912
----------------------------- -------------- ------------------------
CONVERT(varchar(12), getdate(), 102)
2004.09.12
------ ----------------------------- ------------------- ----
select CONVERT(varchar(12), getdate(), 101)
09/12/2004
-- ------------------- ------------------------------- --------
select CONVERT(varchar(12) , getdate (), 103 )
12/09/2004
------ --------------- ------------------------
select CONVERT(varchar(12) 、getdate()、104)
12.09.2004
--- --------------------------------- ------ -------
select CONVERT(varchar(12) , getdate(), 105 )
12-09-2004
- ---------------------------------------------------- -------
select CONVERT(varchar(12 ), getdate(), 106 )
12 09 2004
---------------------- -------------- ------------------------
CONVERT(varchar(12) , getdate(), 107 )
09 12, 2004
- ----------------------------------- --------------- ----------
select CONVERT(varchar(12) , getdate(), 108 )
11:06:08
---------------- ---------------------------------- ----------------
select CONVERT(varchar (12) , getdate(), 109 )
09 12 2004 1
---------- ------------------------ ----------------------------
select CONVERT(varchar(12), getdate(), 110)
09-12-2004
----------------------- ------------------------ ------------------------
select CONVERT(varchar(12) , getdate(), 113 )
2004 12 09 1
-------------------------- ------------------------ -----------------------
select CONVERT(varchar(12), getdate(), 114)
11:06:08.177
-- ------------------------ ------------------------ ------
declare @dateTime DateTime -- 日時変数を定義します
set @dateTime =getdate(); -- 現在のシステム時間を取得し、@dateTime フィールドに割り当てます
-- 短い日付形式: yyyy-m-d
SELECT REPLACE(CONVERT(varchar(10),@dateTime,120),N'- 0','-')
--長い日付形式: yyyy year mm month dd day
SELECT STUFF (STUFF(CONVERT(char(8),@dateTime,112),5,0,N'year') ,8,0,N'month')+N'day'
--長い日付形式: yyyy 年m月d日
SELECT DATENAME(年,@dateTime)+N'年'+CAST(DATEPART(Month ,@dateTime) AS varchar)+N'month'+DATENAME(Day,@dateTime)+N'日'
--完全な日付 + 時刻形式: yyyy-mm-dd hh:mi:ss:mmm
SELECT CONVERT(char(11),@dateTime,120)+CONVERT(char(12),@dateTime,114)
------------------------------------- ----------------------------- ------------------------ ----------------------------- -
2.日付計算処理
DECLARE @dt datetime
SET @dt=GETDATE()
DECLARE @number int
SET @number=3
--1の初日または最終日を指定します。年
--A. 年の初日
SELECT CONVERT(char(5),@dt,120 ; ある日または最終日
--A. 四半期の初日
SELECT CONVERT(datetime,CONVERT(char(8),DATEADD(Month,DATEPART(Quarter,@dt)*3-Month(@dt)- 2,@dt),120)+'1')
--B.四半期の最終日(CASE判定方式)
SELECT CONVERT(datetime,CONVERT(char(8),DATEADD(Month,DATEPART(Quarter, @dt)*3-Month(@dt),@dt),120 )
+CASE WHEN DATEPART(Quarter,@dt) in(1,4)
THEN '31'ELSE '30' END)
--C. 四半期の最終日 (直接計算方式)
SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1+DATEPART(Quarter,@dt)*3-Month(@dt) ),@dt),120)+'1')
--3. 指定された日付が存在する月の最初または最後の日
SELECT CONVERT(datetime,CONVERT( char(8),@dt,120) +'1')
--B. 月の最終日
SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt ),120)+'1' )
--C. 月の最終日(間違った方法を使用しやすい)
SELECT DATEADD(Month,1,DATEADD(Day,-DAY(@dt),@dt))
--4.指定された日付が該当する曜日
SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)
--5. 指定された日付が該当する曜日
--A.日曜日は週の最初の日です
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)
--B.月曜日は週の最初の日です
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)