The Power of Knowladge

explore - brainstorm - share
See also: Other Geeks@INDC

News

where is the news

Community Web Site

October 2008 - Posts

Date Time Enhancement in SQL Server 2008

Permasalahan date time menjadi masalah serius dalam pengelolaan database, sering kali kita mengalami masalah yang semestinya tidak terjadi karena adanya anomali data akibat proses operasi tipe data date time ini. permasalahan mulai timbul ketika kita memiliki kebutuhan seperti :

  • Memisahkan date dengan Time, mengingat secara standar tipe data selalu datetime
  • Range tanggal yang lebih luas
  • Bisa sesuai dengan kebutuhan Time Zone
  • Persisi sampai nano second
  • dsb

akhir nya di SQL 2008 dilakukan inprovement dengan menyediakan 4 tipe data datetime yang baru yaitu

1. Date

  • Date Only
  • Range dari 0001-01-01 sampai dengan 9999-01-01 menggunakan kalender gregorian

2. Time (n)

  • Time Only
  • optional persisi sampai 100 nanoseconds

3. DateTimeOffset(n)

  • UTC Datetime dapat mengadaptasi kebutuhan TimeZone
  • optional persisi sampai 100 nanoseconds
4. DateTime2
  • Ukuran Date Range yang cukup besar
  • optional persisi sampai 100 nanoseconds

Berikut contoh dan perbedaan data datetime yang di tunjukkan dalam Script TSQL di SQL Server 2008

CREATE TABLE t1 (c1 DATE, c2 TIME(3),
    c3 DATETIME2(7) NOT NULL DEFAULT GETDATE(),
    c4 DATETIMEOFFSET CHECK
 (c4<CAST(GETDATE() AS DATETIMEOFFSET(0)))
);

INSERT INTO t1 VALUES ('0001-01-01', '23:59:59',
    '0001-12-21 23:59:59.1234567',
    '0001-10-21 23:59:59.1234567 -07:00');

INSERT INTO t1 VALUES ('9999-12-31', '23:59:59',
    '9999-12-31 23:59:59.1234567',
    '1111-10-21 23:59:59.1234567 -07:00');

SELECT c4,
    DATEPART(TZOFFSET, c4),
    DATEPART(ISO_WEEK, c4),
    DATEPART(MICROSECOND, c4) FROM t1;

copy paste TSQl Script di atas untuk bisa melihat perbedaannya, jangan lupa jalankan di SQL Server 2008

Share this post: | | | |