Sorularımda ve grafiklerimde tarihler ve saatler yanlış
Tarihler ve saatlerle hesaplamalar yapıyorsunuz veya bunları grafiklerde görüntülüyorsunuz, ancak:
- değerler yanlış görünüyor veya
- özet değerleri yanlış.
Sorun saat dilimlerinden mi kaynaklanıyor?
Kök neden: Tarihler ve saatler farklı saat dilimleri kullanılarak saklanır, ancak bu saat dilimlerinin bazıları veya tamamı hesaplamalar yapılırken dikkate alınmaz (yani, sorun tutarsız verilerdir).
Atılacak adımlar:
Bu sorunu çözmek için şu soruların yanıtlarına ihtiyacınız olacak:
- Yanlış görüntülendiğini düşündüğünüz verilerin doğru saat dilimi nedir (yani, doğru cevap nedir)?
- Her zaman damgasında açık bir saat dilimi ayarı var mı veya bazı veya tüm zaman damgaları saat dilimi olmadan mı saklanıyor? Örneğin,
Dec 1, 2019 00:00:00Z00
saat dilimini içerir (Z
'den sonra gösterilir), ancakDec 1, 2019
içermez. - Veritabanı sunucusu hangi saat dilimini kullanıyor?
- Patrona hangi saat dilimini kullanıyor?
Bu yanıtlara sahip olduğunuzda, aşağıdaki gibi durumları arayın:
- Soru veya grafiğiniz, tutarsız veya eksik saat dilimlerine sahip değerleri karşılaştırıyor veya sıralıyor. Örneğin, bir uçuşun kalkış ve varış saatleri yerel saatte bildirilirse, kalkıştan önce varmış gibi görünebilir.
- Sorunuz, farklı saat dilimlerine sahip zaman damgalarını topluyor: örneğin, web sitenizin trafiği için "günlük" toplamlar, Doğu Asya, Avrupa ve Amerika'dan yerel tarihleri kullandığınız için 24 saatten fazla veri içeriyor.
Bir sorun tespit ettiğinizi düşündüğünüzde, tam olarak hangi saat dilimi dönüşümünün temel soruna neden olduğunu anlamak için ayrıntıya inin. Örneğin, günlük değerlere sahip bir zaman serisine bakıyorsanız; hatanız haftalık toplamlarla gerçekleşiyorsa, şunları yapabilirsiniz:
- Sayının yanlış olduğunu bildiğiniz belirli bir gün seçin.
- Bir grafikteki veri noktasına veya bir sonuç tablosundaki bir hücreye tıklayın ve "Bu X'i Gör" seçeneğini seçin.
- Bu soruyu tarayıcınızda diğer iki sekmede açın. Tarih filtrelerini, bir sekmede temel tablodaki satırların önceki günden, diğer tabloda ise sonraki günden olacağı şekilde değiştirin.
- Temel ekranda sonucu gruplandırmak için kullanılan tarih alanının doğru olup olmadığını kontrol edin. Veritabanında sakladığınızdan veya başka bir araçta sahip olduğunuzdan farklıysa, zaman damgası genel olarak yanlış dönüştürülüyor demektir. Bu genellikle açık bir saat dilimi olmayan bir tarih veya saat kullandığınızda olur.
- Temel zaman damgaları doğruysa (açık saat dilimleri varsa doğru olmalıdır), bireysel zamanlar muhtemelen istediğinizden farklı bir saat diliminde günlere gruplandırılıyor demektir.
- Hangi saat dilimine dönüştürüldüklerini öğrenmek için, doğru sayıyı alana veya 12 saat geriye gidene kadar baktığınız sorudaki tarih filtrelerindeki saatleri başlangıç saatini ve başlangıç tarihini bir saat geriye taşıyarak ayarlayın. (Saat dilimlerinizden herhangi biri Hindistan, Newfoundland veya yarım adımlı bir saat dilimine sahip başka bir yargı alanı içeriyorsa, bunu yarım saatlik artışlarla yapmanız gerekebilir.)
- Bu işe yaramazsa, doğru sayıya ulaşana veya 12 saat ileri gidene kadar başlangıç ve bitiş saatlerini bir saat ileri taşımayı deneyin.
- Bu noktada doğru değere sahipseniz, bu, saat diliminizin filtreyi manuel olarak ayarladığınız saat sayısı kadar ileri veya geri dönüştürüldüğü anlamına gelir. Durum buysa, bulduğunuz ofsetin veri ambarının saat dilimiyle veya Patrona'nın kendisinin saat dilimiyle eşleşip eşleşmediğini kontrol edin.
Rapor Saat Dilimi yanlış mı ayarlandı?
Kök neden: Sorulardaki veya grafiklerdeki yanlış sayılar, Patrona tarafından kullanılan saat dilimi ile veri ambarı tarafından kullanılan saat dilimi arasındaki bir uyumsuzluktan kaynaklanabilir.
Atılacak adımlar:
- Yönetim ayarları > Ayarlar > Yerelleştirme bölümünden rapor saat dilimi ayarını kontrol edin.
- Rapor saat dilimi ayarını desteklemeyen bir veritabanı kullanıyorsanız, Patrona'nın saat diliminin veritabanınınkiyle eşleştiğinden emin olun. Patrona'nın saat dilimi, genellikle bir
-Duser.timezone<..>
parametresi veyaJAVA_TIMEZONE
ortam değişkeni aracılığıyla ayarlanan Java Sanal Makinesi'nin saat dilimidir; tam olarak nasıl ayarlandığı, Patrona'yı nasıl başlattığınıza bağlı olacaktır. Patrona'nın saat diliminin bir Rapor Saat Dilimi kullanan hiçbir veritabanını etkilemediğini unutmayın.
SQL sorguları Raporlama Saat Dilimi ayarına uymuyor mu?
Kök neden: Şu anda SQL sorgularının sonuçlarına bir raporlama saat dilimi uygulamıyoruz.
Atılacak adımlar:
SQL sorgunuzda açıkça bir raporlama saat dilimi ayarlayın.
Örneğin, PostgreSQL ile şöyle bir şey yazabilirsiniz:
SELECT column::TIMESTAMP AT TIME ZONE 'EST' AS column_est
Bu ifade önce sütunu bir timestamp
veri türüne dönüştürür, ardından timestamp
'i 'EST' saat dilimiyle bir timestamptz
veri türüne dönüştürür.
Açık bir saat dilimi olmayan tarihler başka bir güne mi dönüştürülüyor?
Kök neden: Bir saat dilimi olmayan bir tarihe (bir saat yerine) göre gruplandırıyorsunuz.
Atılacak adımlar:
- Sorunuzun Veri Modeli Referansı bölümünde kullandığı her zaman alanına bakın ve herhangi birinin basitçe bir "Tarih" alanı olup olmadığını görün.
- Eğer öyleyse, sunucu saat diliminin raporlama saat dilimini yansıttığından emin olun, çünkü Patrona'da bir sorgu çalıştırıldığında, sunucu yapılandırılan saat dilimini o tarihe uygular.
Açık ve örtük saat dilimlerini karıştırıyor musunuz?
Kök neden: Biri açık bir saat dilimine sahip, diğeri ise sahip olmayan iki tarih üzerinde karşılaştırma veya aritmetik işlem yapıyorsunuz.
Atılacak adımlar:
- Bu genellikle birden çok alan kullanan bir sorunda olur: örneğin, bir zaman damgasını filtreliyorsunuz ve başka bir zaman damgasına göre gruplandırıyorsunuz. Sorunuzda kullandığınız her tarihin veya saatin saat dilimlerini kontrol edin.
- Açık bir saat dilimi olmayan herhangi bir değer için açıkça saat dilimini ayarlamanız gerekecektir. Bunun bir SQL sorgusunda veya her iki zaman damgasının da saat dilimine sahip olduğundan emin olmak için veritabanınızdaki verileri dönüştürerek yapılması gerekecektir.