Home
R
Cancel

[SQL] 根據年月取得第一天和最後一天

取得當月、年的第一天和最後一天 -- 當月第一天 select dateadd(month, datediff(month, 0, getdate()), 0) -- 當月最後一天(想法:下個月的第一天減去一天) select dateadd(month, datediff(month, 0, dateadd(month, 1, getdate())), -1) -- 當年第一天 sele...

[SQL] 求兩日期間的相差日數 Datediff()

取得兩個日期之間的相差日數,可以用Datediff()函數求得由特定日期到今天為止的「經過日數」,或是由今天到特定日期為止的「剩餘日數」。 語法 Datediff(datepart, date1, date2) 用datepart單位來取得date1到date2的差額,datepart的單位與Dateadd()函數一樣,可以指定year、month、day。 求剩餘日數 顯示到月底為...

[SQL] 求月底日期 Dateadd()、Datediff()、Eomonth()

Oracle有用來求得月底日期的LAST_DAY()函數,但SQL Server沒有與LAST_DAY()相當的函數,因此要自己計算。 當月的最後一天 = 下個月的第一天-1 DATEADD() + CONVERT()組字串 --求得這個月最後一天的日期 --當月的最後一天 = 下個月的第一天-1 select DATEADD(DAY,-1, DATEADD(MONTH, 1,...

[SQL] 日期運算-加減運算 Getdate()、Dateadd()

以日為單位 Getdate()搭配運算符 +- 請輸出昨天、今天、明天的日期 --請輸出昨天、今天、明天的日期 select GETDATE()-1 "昨天", GETDATE() "今天", GETDATE()+1 "明天" 也可以使用 dateadd() Dateadd() 語法 Dateadd(datepart, number, date) ...

[SQL] 格式變換 Convert

--以字串輸出現在的年月日時分秒 select CONVERT(char(19),GETDATE(),120) "現在日期時間" 語法 CONVERT(char, date, 111) --24小時制 2011-12-29 14:06:29 CONVERT(char, date, 123) --年月日 2011/12/29 CONVERT(char, date) --12小時制 12 2...

[SQL] 條件判斷 Case (When Then Else)

SQL的CASE類似程式語言裡的 if-then-else 語句,用來作邏輯判斷。 跟多數程式語言一樣,在寫 SQL 時可以用 IF... ELSE 來寫條件判斷;也跟多數程式語言一樣,除了 IF 之外,也有 CASE 的條件判斷語法。許多程式語言會用 swtich... case ,而在 SQL 則有點不同,會是用 CASE... WHEN。 case可以在select語法中進...

[SQL] Select 1、Select null

Exists 搭配 Select 1、Select null select 1、select unll一般用來當條件使用,比如: exists(select 1 from table) exists(select null from table) select A.負責人ID, A.負責人姓名 from [負責人清單] A where exists (select 1 fr...

[SQL] 檢查資料是否存在 Exists、Not Exists

Exists EXISTS運算子用於判斷查詢子句是否有記錄,如果有一筆或多筆記錄存在回傳 True,否則傳回 False。 (該子查詢實際上並不返回任何數據,而是返回值True或False) EXISTS與IN的使用效率的問題,通常採用exists要比in效率高,因為IN不走索引,但要看實際情況具體使用: 當內表小外表大時,EXISTS的效率< in的效率; ...

[SQL] SQL中AVG()、COUNT()、SUM()、MAX()等函數對NULL值處理

Avg() 求平均值 Avg()忽略 Null 值,而不是將其作為0參與計算。 Count() Count(*)、Count(1)、Count(主鍵PK) 對資料表的行數進行計數。(包含NULL) 不管是否有Null Count(欄位名) 對特定列有數據的行進行計數。 (不包含NULL) 忽略 null 值 Sum() 可以對單列求和,也可以對多個列運算後求和。(不包含NU...

[SQL] 取得現在的日期 Getdate()

select GETDATE() --2023-12-27 00:04:13.627