Hàm thông dụng trong SQL Server – Phần 1: Hàm ngày tháng (1)

Loạt bài này giới thiệu các hàm và
cách sử dụng các hàm thông dụng trong SQL Server, cũng như ví dụ cụ thể đi kèm
để giúp người đọc, đặc biệt là những người mới làm quen với SQL Server tiếp cận
dễ dàng. Những hàm này cũng là những hàm thường xuyên sử dụng và chiếm đến 90%
số các hàm mà một lập trình viên SQL Server sử dụng trong công việc của mình.
Ở phần một, chúng ta sẽ làm quen với
các hàm sau:


1.     
GETDATE()
2.     
DATEPART()
3.     
DATEDIFF()
4.     
DATENAME()
5.     
DAY()
6.     
MONTH()
7.     
YEAR()

Hàm ngày tháng trong SQL Server

Hàm ngày tháng trong SQL Server




1.     
Hàm GETDATE()
Hàm này không có tham số và trả về
ngày tháng hiện tại trên hệ thống như ví dụ sau:\
select GETDATE()
Hàm getdate() trong SQL Server
Hàm Getdate trong SQL Server

2.     
Hàm DATEPART()
Hàm này có kiểu trả về là kiểu int
và có cấu trúc như sau:
DATEPART ( datepart , date )
Trong đó các tham số:
date: là ngày truyền vào để lấy các phần tương ứng với tham số datepart như sau.

datepart: là 1 hoặc 2 chữ cái viết
tắt đại diện một phần của tham số date, bao gồm các giá trị:
·        
yy,
yyyy: năm của date
·        
 qq, q: quý của date
·        
mm,
m: tháng của date
·        
dy,y:
ngày date là ngày thứ mấy của năm
·        
dd,
d: lấy phần ngày của date
·        
wk,
ww: date thuộc tuần thứ mấy trong năm
·        
dw:
date là ngày thứ mấy trong tuần
·        
hh:
giờ
·        
mi,n:
phút
·        
ss,s:
giây
·        
ms:
mili giây
·        
mcs:
micro giây
·        
ns:
nano giây
Ví dụ hàm DATEPART() trong SQL Server:
— Lấy năm của
ngày hiện tại
select datepart(yy,GETDATE()) as Năm
— lấy ngày của
ngày hiện tại
select datepart(DD,GETDATE()) as Ngày
— Lấy tháng của
tháng hiện tại
select datepart(MM ,GETDATE()) as Tháng
— Lấy thứ của
ngày hiện tại
select datepart(DW ,GETDATE()) as Thứ — kết quả 1 == Chủ nhật
— Quý thứ mấy của
năm
select datepart(QQ,GETDATE()) as Quý — kết quả 1 == Chủ nhật
— Câu query sau
cho biết ngày hiện tại là ngày thứ mấy trong năm
select datepart(DY,GETDATE()) as [Ngày thứ mấy
của năm] — kết quả 1 == Chủ nhật
— Ngày hiện tại
thuộc tuần thứ mấy của năm
select datepart(WW,GETDATE()) as [Tuần thứ mấy
của năm] — kết quả 1 == Chủ nhật
Hàm datepart() trong SQL Server
Hàm datepart() trong SQL Server

3.     
Hàm DATEDIFF() :
Hàm này tính số ngày và thời gian đã
qua giữa ngày đầu và ngày cuối được truyền vào. Nó trả về giá trị kiểu Int và có cấu trúc như sau:
DATEDIFF ( datepart , startdate , enddate ) 
Trong
đó:
         
datepart: như hàm datepart() ở mục 3.
         
startdate: ngày thứ nhất
         
enddate: ngày thứ hai.
Ví dụ hàm DATEDIFF() trong SQL Server:
— Mấy tháng nữa thì đến 2/9/2013?
select datediff(MM,GETDATE(), ‘2013-09-02’) as [Số tháng từ nay đến 2-09]
— Mấy ngày nữa thì đến 2/9/2013?
select datediff(DD,GETDATE(), ‘2013-09-02’) as [Số ngày từ nay đến 2-09]
— Mấy giờ nữa thì đến 2/9/2013?
select datediff(HH,GETDATE(), ‘2013-09-02’) as [Số giờ từ nay đến 2-09]
— Mấy tuần nữa thì đến 2/9/2013?
select datediff(WW,GETDATE(), ‘2013-09-02’) as [Số tuần từ nay đến 2-09]
Hàm datediff() trong SQL Server
Hàm datediff trong SQL Server

4.      Hàm DATENAME()
Hàm này trả về giá trị kiểu chuỗi
đại diện cho phần ngày được chỉ định trong tham số date được truyền vào. Cấu trúc hàm này như sau:
DATENAME
( datepart , date )
Hàm này gần giống với hàm DATEPART ở
trên nhưng khác ở chỗ:
         
Giá
trị trả về là kiểu chữ.
         
Với
những datepart có thể diễn đạt được
bằng chữ thì nó sẽ trả về chuỗi đại diện cho datepart đó, ví dụ: datepart
là mm thì giá trị trả về là “June”. Trong khi nếu datepart là yy thì giá trị trả về giống với hàm datepart() ở trên là “2013”.
Ví dụ hàm DATENAME() trong SQL Server:
— tên tháng hiện tại
select datename(M,getdate()) as [Tên tháng hiện tại]
— năm hiện tại
select datename(YY,getdate()) as [Tên năm hiện tại]
— Tên quý hiện tại
select datename(QQ,getdate()) as [Tên năm hiện tại]
Hàm datename trong SQL Server
Hàm Datename trong SQL Server

5.      Hàm DAY()
Hàm này trả ngày của tham số date được truyền vào và có cấu trúc sau:
DAY ( date )
Ví dụ hàm DAY() trong SQL Server:
Hàm day() trong SQL Server
Hàm day() trong SQL Server

6.      Hàm MONTH()
Hàm này trả về tháng của tham số date được truyền vào và có cấu trúc sau:
MONTH ( date )
Ví dụ hàm MONTH() trong SQL Server:
Hàm Month() trong SQL Server
Hàm Month() trong SQL Server
7.      Hàm YEAR()
Hàm này trả về năm của tham số date được truyền vào và có cấu trúc sau:
YEAR ( date )
Ví dụ hàm YEAR() trong SQL Server:
Hàm Year() trong SQL Server

No Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

SQL Server
1
Clustered Index và Non-Clustered Index là gì?

Index trong SQL Server là một cấu trúc dữ liệu được lưu trữ trên ổ cứng tương ứng với một table hoặc view nhằm mục đích tăng tốc độ việc truy xuất dữ liệu từ table hoặc view đó. Một index chứa các keys được xây dựng từ một hoặc …

SQL Server
Đánh số thứ tự bản ghi trong SQL Server

Trong rất nhiều trường hợp, bạn muốn đánh số thứ tự các bản ghi của kết quả câu truy vấn trong SQL theo  một hoặc một số tiêu chí nào đó nhằm mục đích trình bày cũng như xử lý dữ liệu được trực quan hoặc dùng vào nhiều mục …

SQL Server
Hàm thông dụng trong SQL Server – Phần 1: Hàm ngày tháng (2)

Tiếp theo phần 1 của hàm ngày tháng trong SQL Server, phần này giới thiệu riêng thêm một hàm trong nhóm hàm ngày tháng đó là hàm DATEADD(). Hàm DATEADD trong SQL Server  Hàm này có cấu trúc như sau: DATEADD (datepart , number , date ) –          Trong đó …