v2.5.2
Giriş yap

Sql Server tarih formatı değiştirme hakkında

trsherlock
876 defa görüntülendi

Merhaba,
Tarihler 'Sql Server'da data tipi "smalldatetime" olarak saklanmaktadır.
Ben sorguyu ajax ile gönderip json olarak alıyorum. Fakat "yyyy-mm-dd" formatında alamıyorum.
Bu konuda yardımcı olabilir misiniz?
Not: Aşağıdaki "CAST" ve "CONVERT" sorgularını Microsoft Sql Server Managament ile sorguladığımda "yyyy-mm-dd" formatında alıyorum.
Php ile yapılan sorguda json gibi bir cevap alıyorum.

<?php
    ...
        $yevmiyeSorgu = "SELECT CAST(Fistar as date) as Fistar,
            CONVERT(date, Evraktarihi) as Evraktarihi
            FROM [yevmiye] where month(fistar) = '$Ayindex'";
        
        $result = sqlsrv_query($db, $yevmiyeSorgu);
        $dizi = array();
        while ($row1 = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
            $dizi[] = $row1;
        }
    echo json_encode($dizi);
    ...
?>
[
    "Fistar":{
        "date":"2019-12-06 00:00:00.000000",
        "timezone_type":3,
        "timezone":"UTC"
    },
    "Evraktarihi":{
        "date":"2019-12-06 00:00:00.000000",
        "timezone_type":3,
        "timezone":"UTC"}
    }
]
Cevap yaz
Cevaplar (2)
trsherlock
1248 gün önce

İlginiz için teşekkür ederim. Fakat işime yarasa bile ben dizi içine entegre edebilir miyim bilmiyorum? Denedim beceremedim :)
Muhasebe bürosunda çalışıyorum işimle alakalı muhasebe programının yetersiz kaldığı yerlerde kendim web uygulaması ile bu yaşadığım sorunları çözmek için kullanıyorum.
Ben araştırmalarım sonucu sorunu çözebildim.
Sorguda tarihleri CONVERT(varchar, tarih, 23) as tarih şeklinde ayarlayınca istediğim sonuca ulaşabildim.

    ...
        $yevmiyeSorgu = "SELECT CONVERT(varchar, Fistar, 23) as Fistar,
            CONVERT(varchar, Evraktarihi, 23) as Evraktarihi 
            FROM [yevmiye] where month(fistar) = '$Ayindex'";
        
        $result = sqlsrv_query($db, $yevmiyeSorgu);
        $dizi = array();
        while ($row1 = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
            $dizi[] = $row1;
        }
    echo json_encode($dizi);
    ...

Json Sonuç:

    [
        {"Fistar":"2020-09-30","Evraktarihi":"2020-09-03"},
        {"Fistar":"2020-09-30","Evraktarihi":"2020-09-03"},
        {"Fistar":"2020-09-30","Evraktarihi":"2020-09-03"}
    ]
tayfunerbilen
1248 gün önce

php tarafında şu şekilde istediğin formata çevirebilirsin

$date = date('Y-m-d', strtotime('2019-12-06 00:00:00.000000')); // 2019-12-06

bilmiyorum işine yarar mı :)