Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Klik link berikut untuk informasi cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com

Baca cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

DATEDIFF

Permisi min mau nanya..
saya mau mencari mencari selisih tgl masuk karyawan dengan tgl sekarang(30 Maret 2017) di SQL SERVER

rumus saya datediff(YYYY,2001-04-02,getdate())

tp kenapa hasilnya 16 tahun?
padahal saya aplikasikan ke excel hasilnya 15 tahun.
yg saya inginkan menampilkan 16 tahun kalo tgl sudah masuk 2017-04-02.
apakah ada trik terselubung untuk SQL SERVER ?
Terimakasih

Comments

  • edited March 2017
    "trik terselubung"? :o

    sepertinya di SQL SERVER fungsi datediff menghitung berdasarkan identitas tanggal .
    contoh :
    SELECT datediff(MONTH,'2017-02-28','2017-03-02'); -- hasil  1 seharusnya 0 bulan
    SELECT datediff(MONTH,'2017-03-01','2017-03-02'); -- hasil 0
     
    SELECT datediff(YY,'2016-12-31','2017-03-02'); -- hasil 1 seharusnya 0 tahun
    SELECT datediff(YY,'2017-01-01','2017-03-02'); -- hasil 0


    Untuk kasus diatas,
    SELECT datediff(MONTH,'2001-04-02',getdate())/12;         -- hasil 15 tahun
    SELECT datediff(MONTH,'2001-04-02','2017-04-02')/12; -- hasil 16 tahun

  • edited March 2017
    Sebelumnya terima kasih sudah ngasih jawaban gan. tapi kalo pake cara agan masih kurang tepat hasilnya.
    SELECT datediff(MONTH,'2016-04-02','2017-04-01')/12 --> hasilnya 1 tahun seharusnya 0

    kalo menggunakan identitas hari juga kurang tepat hasilnya. karena jml hari untuk setiap tahun tidak sama.
Sign In or Register to comment.