MySQL'de Tarihler ve Saatlerle Nasıl Etkili Çalışılır

MySQL'de Tarihler ve Saatlerle Nasıl Etkili Çalışılır

Tarihler ve saatler önemlidir, işleri düzenli tutmaya yardımcı olur ve herhangi bir yazılım işleminin ayrılmaz bir parçasıdır.





Veri tabanı içinde onlarla verimli bir şekilde çalışmak, çeşitli zaman dilimlerinde çalışıyor olsun, tarih ekleme/çıkarma ve diğer işlemler olsun, bazen kafa karıştırıcı görünebilir.





Veritabanınızdaki tarihleri/saatleri kolayca işlemek ve yönetmek için kullanılabilen çeşitli MySQL işlevlerini öğrenin.





Saat Dilimleriyle Çalışma

İşleri standart hale getirmeye yardımcı olmak için, yalnızca UTC saat dilimindeki tarihler/saatlerle çalışmalısınız. MySQL veritabanına her bağlantı kurduğunuzda, aşağıdaki SQL deyimi ile yapılabilecek saat dilimini UTC olarak değiştirmelisiniz:

SET TIME_ZONE = '+0:00'

Tüm tarihler artık UTC'de kaydedileceğinden, neyle çalıştığınızı her zaman bilirsiniz, bu da işleri daha basit ve anlaşılır hale getirir.



php sitesi nasıl yapılır

Gerektiğinde kolayca yapabilirsiniz saat dilimini dönüştür kullanışlı ile herhangi bir tarih/zaman damgası değerinin CONVERT_TZ() MySQL işlevi. Önce ofseti bilmeniz gerekir, örneğin, Kuzey Amerika'nın batı kıyısındaki PST UTC -08:00'dir, böylece şunları kullanabilirsiniz:

SELECT CONVERT_TZ('2021-02-04 21:47:23', '+0:00', '-8:00');

Bu, şu şekilde sonuçlanır: 2021-02-04 13:47:23 ki bu tam olarak doğru. Üç argüman iletildi CONVERT_TZ() ilk olarak başladığınız tarih/zaman damgası (şimdiki zaman için şimdi () kullanın), ikincisi her zaman olacaktır '+0: 00' tüm tarihler veritabanında UTC'ye zorlandığından ve sonuncusu, tarihi dönüştürmek istediğimiz ofsettir.





Tarih Ekle / Çıkar

Çoğu zaman, örneğin bir hafta öncesinden kayıtları almanız veya bundan bir ay sonra bir şey planlamanız gerekiyorsa, tarihlere eklemeniz veya çıkarmanız gerekir.

Neyse ki MySQL mükemmel DATE_ADD() ve DATE_SUB () bu görevi son derece kolaylaştıran işlevler. Örneğin, SQL deyimiyle geçerli tarihten iki hafta çıkarabilirsiniz:





SELECT DATE_SUB(now(), interval 2 week);

Bunun yerine mevcut bir zaman damgasına üç gün eklemek isterseniz, şunları kullanırsınız:

SELECT DATE_ADD('2021-02-07 11:52:06', interval 3 day);

Her iki işlev de aynı şekilde çalışır, ilk bağımsız değişken, başladığınız zaman damgasıdır ve ikinci bağımsız değişken, toplama veya çıkarma aralığıdır. İkinci argüman her zaman kelime ile başlayarak aynı şekilde biçimlendirilir. Aralık ardından sayısal bir değer ve aşağıdakilerden herhangi biri olabilen aralığın kendisi gelir: saniye, dakika, saat, gün, hafta, ay, çeyrek, yıl.

Başka bir örnek için, son 34 dakika içinde gerçekleşen tüm oturumları almak istiyorsanız, aşağıdaki gibi bir SQL ifadesi kullanabilirsiniz:

SELECT * FROM logins WHERE login_date >= DATE_SUB(now(), interval 45 minute);

Gördüğünüz gibi, bu, tüm kayıtları girişler giriş tarihi mevcut saatten 45 dakika veya diğer bir deyişle son 45 dakikadan daha büyük olan tablo.

Tarihler Arasındaki Farkı Alın

Bazen iki tarih arasında ne kadar zaman geçtiğini öğrenmeniz gerekir. ile iki farklı tarih arasındaki gün sayısını kolayca alabilirsiniz. DATEDIFF aşağıdaki SQL deyimi gibi bir işlev:

SELECT DATEDIFF(now(), '2020-12-15');

NS DATEDIFF işlevi, her ikisi de tarih/zaman damgası olan iki argüman alır ve aralarındaki gün sayısını verir. Yukarıdaki örnek, 15 Aralık 2020'den bugüne kadar geçen gün sayısını gösterecektir.

İki tarih arasındaki saniye sayısını almak için, TO_SECONDS() işlevi kullanışlı olabilir, örneğin:

SELECT TO_SECONDS(now()) - TO_SECONDS('2021-02-05 11:56:41');

Bu, sağlanan iki tarih arasındaki saniye sayısını verir.

Tarihlerden Segment Çıkarma

Yalnızca ayı, yılın gününü veya saati istemeniz gibi, tarihlerden belirli bölümleri kolayca çıkarmanıza izin veren çeşitli MySQL işlevleri vardır. İşte bu tür işlevlere birkaç örnek:

SELECT MONTH('2021-02-11 15:27:52'); SELECT HOUR(now()); SELECT DAYOFYEAR('2021-07-15 12:00:00');

Yukarıdaki SQL ifadeleri 02 , geçerli saat ve 196 15 Eylül yılın 196. günü olduğu için. Burada, her biri yalnızca bir argüman alan ve tarihin çıkarıldığı tüm tarih çıkarma işlevlerinin bir listesi bulunmaktadır:

- SECOND()
- MINUTE()
- HOUR()
- DAY()
- WEEK() - Number 0 - 52 defining the week within the year.
- MONTH()
- QUARTER() - Number 1 - 4 defining the quarter of the year.
- YEAR()
- DAYOFYEAR() - The day of the year (eg. Sept 15th = 196).
- LAST_DAY() - The last day in the given month.
- DATE() - The date in YYYY-MM-DD format without the time.
- TIME() The time in HH:II:SS format without the date.
- TO_DAYS() - The number of days since A.D. 0.
- TO_SECONDS() - The number of seconds since A.D. 0.
- UNIX_TIMESTAMP() - The number of seconds since the epoch (Jan 1st, 1970)

Örneğin, yalnızca tüm kullanıcıların oluşturulduğu ayı ve yılı almak istiyorsanız, aşağıdaki gibi bir SQL ifadesi kullanabilirsiniz:

SELECT id, MONTH(created_at), YEAR(created_at) FROM users;

Bu, içindeki tüm kayıtları alır kullanıcılar tablosunu görüntüleyin ve her kullanıcının oluşturulduğu id#, ay ve yılı gösterin.

Kayıtları Tarih Döneme Göre Gruplama

Tarih işlevlerinin mükemmel bir kullanımı, kayıtları tarih aralığına göre gruplandırma yeteneğidir. GRUP TARAFINDAN SQL ifadelerinizin içinde. Örneğin, 2020'deki tüm siparişlerin toplam tutarını aya göre gruplandırmak isteyebilirsiniz. Aşağıdaki gibi bir SQL ifadesi kullanabilirsiniz:

SELECT MONTH(created_at), SUM(amount) FROM orders WHERE created_at BETWEEN '2020-01-01 00:00:00' AND '2020-12-31 23:59:59' GROUP BY MONTH(created_at);

Bu, 2020 yılında verilen tüm siparişleri alacak, oluşturuldukları aya göre gruplandıracak ve yılın her ayında sipariş edilen toplam tutarı gösteren 12 kayıt döndürecektir.

Lütfen daha iyi dizin performansı için tarih işlevlerini kullanmaktan kaçınmanın her zaman en iyisi olduğunu unutmayın. YIL() SQL deyimlerinin WHERE yan tümcesi içinde ve bunun yerine ARASINDA operatör yukarıdaki örnekte gösterildiği gibidir.

Bir Daha Asla Tarihlerle Karıştırmayın

Yukarıdaki bilgileri kullanarak, artık çok çeşitli kullanım durumlarında tarih ve saatlerde verimli bir şekilde çalışabilir, tercüme edebilir ve işlemler gerçekleştirebilirsiniz.

Basitlik için tarihlerle çalışırken her zaman UTC'yi kullanmayı unutmayın ve ister basit hesaplamaları tamamlamak ister tarih dönemlerine göre gruplandırılmış raporları kolayca almak olsun, yazılımınızdaki tarihleri ​​verimli bir şekilde yönetmek için yukarıdaki ipuçlarını kullanın.

SQL'de biraz yeniyseniz, bunları kontrol ettiğinizden emin olun. temel SQL komutları SQL kullanımınızı iyileştirmeye yardımcı olmak için.

Paylaş Paylaş Cıvıldamak E-posta Microsoft Word'de Profesyonel Raporlar ve Belgeler Nasıl Oluşturulur

Bu kılavuz, profesyonel bir raporun unsurlarını inceler ve belgenizin Microsoft Word'de yapılanmasını, stilini ve sonlandırılmasını gözden geçirir.

Sonrakini Oku
İlgili konular Yazar hakkında Matt Dizak(18 Makale Yayınlandı) Matt Dizak'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın