Tải bản đầy đủ (.pdf) (5 trang)

Cải tiến trong lệnh T-SQL của SQL Server 2008- P9 doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (313.08 KB, 5 trang )

)
GO
Khai báo biến TIME để lưu trữ thời gian
DECLARE @StartTime TIME = '00:01'
DECLARE @EndTime TIME = '08:00'
INSERT INTO ShiftMaster(ShiftName,
StartTime, EndTime)
VALUES
('Shift A', @StartTime, @EndTime),
('Shift B','08:01', '04:00'),
('Shift C','04:01', '00:00')
GO
SELECT * FROM ShiftMaster
GO


DATETIMEOFFSET
Đây là một kiểu dữ liệu mới khác của SQL Server
2008. Nhờ kiểu dữ liệu này chúng ta có thể lưu trữ
ngày/giờ với độ chính xác rất cao. Dù chúng ta không
thể lưu trữ múi giờ như Eastern Time, Central Time,
… nhưng chúng ta có thể lưu trữ offset -5:00 cho
Eastern Standard Time và -6:00 cho Central Standard
Time, … Vùng dữ liệu Date trong khoảng từ 01-01-
0001 tới 12-31-9999, vùng Time trong khoảng
00:00:00 tới 23:59:59.9999999. Vùng Offset trong
khoảng từ -14:00 đến +14:00. Độ chính xác của dữ
liệu có thể được cài đặt thủ công theo lịch Gregorian.
DATETIMEOFFSET định nghĩa một ngày mà được
kết hợp với một khoảng thời gian của một ngày khác
nhận biết được múi giờ và dựa trên hệ giờ 24 giờ.



CREATE TABLE OrderMaster
(
OrderID INT IDENTITY,
CustomerID INT,
OrderDateTIme DATETIMEOFFSET
DATETIMEOFFSET data type to store date and
time along with the time-zone offset
)
GO
Khai báo biến DATETIMEOFFSET để lưu trữ
ngày và giờ cùng với Offset múi giờ
DECLARE @OrderDateTIme
DATETIMEOFFSET= '2009-01-16 00:24 +05:30'
INSERT INTO OrderMaster(CustomerID,
OrderDateTIme)
VALUES
(1, @OrderDateTIme),
(1,'2009-01-18 00:24 +05:30'),
(2,'2009-01-18 00:24 -04:00')
GO
SELECT * FROM OrderMaster
GO



DATETIME2
Lí do SQL Server 2008 giới thiệu kiểu dữ liệu
DATETIME2 là do kiểu dữ liệu DATETIME không
phù hợp với chuẩn SQL, và DATETIME không hoàn

toàn tương thích với kiểu dữ liệu .NET DATETIME.
Về cơ bản DATETIME2 là sự kết hợp của kiểu dữ
liệu DATE và TIME mới và sử dụng 6 đến 8 byte.
Kích thước thực được xác định bởi mức độ chính xác
của dữ liệu được lưu trữ, ví dụ, DATETIME(0) sẽ sử
dụng 6 byte, DATETIME(3) sẽ sử dụng 7 byte trong
khi đó DATETIME(7) mặc định sử dụng 8 byte (con
số bên trong dấu ngoặc cho biết độ chính xác của
thông tin, và bạn có thể thay đổi giá trị này trong
khoảng 0 đến 7).

DATETIME2 chấp nhận nhiều định dạng chuỗi. Kiểu
dữ liệu này cũng sử dụng lịch Gregorian, và chúng ta
không thể chỉ định múi giờ trong kiểu dữ liệu này.

Ngoài những thay đổi trong kiểu dữ liệu, SQL Server
2008 còn giới thiệu 5 hàm mới, gồm SYSDATETIME,
SYSDATETIMEOFFSET, SYSUTCDATETIME,
SWITCHOFFSET và TODATETIMEOFFSET.

Hàm SYSDATETIME trả về thời gian hiện tại của
hệ thống mà không có múi giờ với độ chính xác 10
mili giây.

×