Tarih Ve Saat Tipleri

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Tarih Ve Saat Tipleri

Mesaj gönderen pro_imaj »

Merhaba;

Tarih ve saat tiplerini araştıryorum Şu tipler yok diye biliyorum ama.

06.11.2006 =20061106
16:35:20 =163520

Yani tarihi = YılAyGün
Saati =SaatDakikaSaniye Şeklinde alabileceğim bir dönüşüm mevcutmu acaba.


Tarih ve saatte muhakkak araya bir ayıraç isteniyor yapmak istediğim bu ayıraç olmadan illegal olarak bir dönüşüm yapmak.

Saygılarımla
Teşekkürler.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
formatdatetime fonksiyonu belki işinize yarar.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
Opt2000
Üye
Mesajlar: 216
Kayıt: 09 Tem 2003 10:04

Mesaj gönderen Opt2000 »

Selam,

aslangeri dediği fonksiyonla bunu yapabilirsin, ama anladığım kadarıyla daha çok veri tabanına kayıt yapmak için bu formata çevireceksiniz. Ama kesinlikle tavsiye etmem. Sorunsuz tarih sorgulamaları yapmak için şunu bilmeniz yeterli.

Bilgisayarda tarih-saat formatı, temelde Julian Date sistemi kullanılarak yapılır. Bu sisteme göre tarih-saat aslında double bir sayı ile ifade edilir. Double sayının tamsayı kısmı tarihi, ondalık sayı kısmı ise saati ifade eder. (Unix vs gibi sistemlerde bir takım farklılıklar olabiliyor, örneğin belli bir tarihten sonraki milisaniyeleri sayak gibi). Her 24 saat bir güne denk geldiğinden, tarih otomatik olarak artar. Özellikle saat içeren sorgularda sorun yaşamanızın sebebi, 24 saatin hassasiyetinin aşırı yüksek bir şekilde ifade edilmesi ve tam olarak sizin istediğiniz saatin neredeyse hiç denk gelememesidir.

Bu yüzden veri tabanındaki alanları veri tipini belirlerken gerçekten de tam ihtiyacınız olan veri tipini seçmelisiniz. Yani sadece doğum tarihi için DateTime değil, Date seçmeniz yeterlidir. Aksi takdirde sorgularda kesinlikle sorun yaşayacaksınız.

Diğer biz çözüm ise, veri tabanına kayıt yaparken yuvarlama yaparak kayıt etmektir. Yuvarlamadan kastım, veri tabanına Now fonksiyonunu kullanarak değil, EncodeDateTime ile milisaniye ve saniye gibi detayları yuvarlayarak ürettiğiniz bir saat ile kaydetmenizdir. Sorgularda da her zaman için tam eşitlik kullanmamaya çalışın.

Aksi takdirde veri tabanı erişimi için hazır bileşenleri kullanamazsınız. Bu da sizin projeyi üretme hızınızı bir hayli düşürecektir.

Kolay gelsin,
Bahadır Alkaç
Cevapla