Các hàm trả về ngày giờ hệ thống

Các hàm thao tác dữ liệu trong SQL Server

Ana Voicu

Data Engineer

Lỗi thường gặp với ngày và giờ

  • Định dạng/mẫu ngày giờ không nhất quán
  • Phép toán số học
  • Vấn đề múi giờ
Các hàm thao tác dữ liệu trong SQL Server

Múi giờ trong SQL Server

  • Múi giờ cục bộ
  • Múi giờ UTC (Giờ Phối hợp Quốc tế)
Các hàm thao tác dữ liệu trong SQL Server

Các hàm trả về ngày giờ của hệ điều hành

Độ chính xác cao

  • SYSDATETIME()
  • SYSUTCDATETIME()
  • SYSDATETIMEOFFSET()

Độ chính xác thấp

  • GETDATE()
  • GETUTCDATE()
  • CURRENT_TIMESTAMP
Các hàm thao tác dữ liệu trong SQL Server

Ví dụ hàm độ chính xác cao

SELECT 
    SYSDATETIME() AS [SYSDATETIME],
    SYSDATETIMEOFFSET() AS [SYSDATETIMEOFFSET],  
    SYSUTCDATETIME() AS [SYSUTCDATETIME];
| [SYSDATETIME]               | [SYSDATETIMEOFFSET]                | [SYSUTCDATETIME]            |
|-----------------------------|------------------------------------|-----------------------------|
| 2019-04-15 00:35:38.8740380 | 2019-04-15 00:35:38.8740380 +03:00 | 2019-04-14 21:35:38.8740380 |
Các hàm thao tác dữ liệu trong SQL Server

Ví dụ hàm độ chính xác thấp

SELECT 
    CURRENT_TIMESTAMP AS [CURRENT_TIMESTAMP], 
    GETDATE() AS [GETDATE] ,
    GETUTCDATE() AS [GETUTCDATE];
| [CURRENT_TIMESTAMP]     | [GETDATE]               | [GETUTCDATE]            |
|-------------------------|-------------------------|-------------------------|
| 2019-04-15 06:42:56.010 | 2019-04-15 06:42:56.010 | 2019-04-15 03:42:56.010 |
Các hàm thao tác dữ liệu trong SQL Server

Chỉ lấy ngày

SELECT 
    CONVERT(date, SYSDATETIME()) AS [SYSDATETIME], 
    CONVERT(date, SYSDATETIMEOFFSET()) AS [SYSDATETIMEOFFSET], 
    CONVERT(date, SYSUTCDATETIME()) AS [SYSUTCDATETIME], 
    CONVERT(date, CURRENT_TIMESTAMP) AS [CURRENT_TIMESTAMP],
    CONVERT(date, GETDATE()) AS [GETDATE], 
    CONVERT(date, GETUTCDATE()) AS [GETUTCDATE];
| [SYSDATETIME] | [SYSDATETIMEOFFSET] | [SYSUTCDATETIME] | [CURRENT_TIMESTAMP] | [GETDATE]   |[GETUTCDATE]|
|---------------|---------------------|------------------|---------------------|-------------|--------------|
| 2018-11-22    | 2018-11-22          | 2018-11-22       | 2018-11-22          | 2018-11-22  | 2018-11-22   |
Các hàm thao tác dữ liệu trong SQL Server

Chỉ lấy giờ

SELECT 
    CONVERT(time, SYSDATETIME()) AS [SYSDATETIME], 
    CONVERT(time, SYSDATETIMEOFFSET()) AS [SYSDATETIMEOFFSET], 
    CONVERT(time, SYSUTCDATETIME()) AS [SYSUTCDATETIME], 
    CONVERT(time, CURRENT_TIMESTAMP) AS [CURRENT_TIMESTAMP],
    CONVERT(time, GETDATE()) AS [GETDATE], 
    CONVERT(time, GETUTCDATE()) AS [GETUTCDATE]
| [SYSDATETIME]    | [SYSDATETIMEOFFSET] | [SYSUTCDATETIME] | [CURRENT_TIMESTAMP] | [GETDATE]        | [GETUTCDATE]     |
|------------------|---------------------|------------------|---------------------|------------------|------------------|
| 07:03:13.4127151 | 07:03:13.4142034    | 04:03:13.4142034 | 07:03:13.4133333    | 07:03:13.4133333 | 04:03:13.4133333 |


Các hàm thao tác dữ liệu trong SQL Server

Vamos praticar!

Các hàm thao tác dữ liệu trong SQL Server

Preparing Video For Download...