{"id":211,"title":"SQL Notlar\u0131:  Tarih ve Saat \u0130\u015flemleri","content":"<p>MySQL, tarih ve saat verileri \u00fczerinde \u00e7e\u015fitli i\u015flemler yapmak i\u00e7in bir\u00e7ok fonksiyon sunar. Bu b\u00f6l\u00fcmde, MySQL'deki temel tarih ve saat i\u015flemlerini ve bu i\u015flemlerin nas\u0131l kullan\u0131ld\u0131\u011f\u0131n\u0131 inceleyece\u011fiz.<\/p><p>### 1. **Tarih ve Saat Fonksiyonlar\u0131**<\/p><p>- **`NOW()`:** Sunucunun mevcut tarih ve saatini d\u00f6ner.<br>&nbsp;<br>&nbsp;**\u00d6rnek Kullan\u0131m:**<br>&nbsp;```sql<br>&nbsp;SELECT NOW(); -- '2023-10-05 14:30:00'<br>&nbsp;```<\/p><p>- **`CURDATE()`:** Sunucunun mevcut tarihini d\u00f6ner (saat bilgisi olmadan).<br>&nbsp;<br>&nbsp;**\u00d6rnek Kullan\u0131m:**<br>&nbsp;```sql<br>&nbsp;SELECT CURDATE(); -- '2023-10-05'<br>&nbsp;```<\/p><p>- **`CURTIME()`:** Sunucunun mevcut saatini d\u00f6ner (tarih bilgisi olmadan).<br>&nbsp;<br>&nbsp;**\u00d6rnek Kullan\u0131m:**<br>&nbsp;```sql<br>&nbsp;SELECT CURTIME(); -- '14:30:00'<br>&nbsp;```<\/p><p>### 2. **Tarih ve Saat Aritmeti\u011fi**<\/p><p>MySQL, tarih ve saat de\u011ferleri \u00fczerinde aritmetik i\u015flemler yapmak i\u00e7in `INTERVAL` ifadesini kullan\u0131r.<\/p><p>- **`NOW() + INTERVAL 1 DAY`:** \u015euanki tarih ve saate 1 g\u00fcn ekler.<br>&nbsp;<br>&nbsp;**\u00d6rnek Kullan\u0131m:**<br>&nbsp;```sql<br>&nbsp;SELECT NOW() + INTERVAL 1 DAY; -- '2023-10-06 14:30:00'<br>&nbsp;```<\/p><p>- **`CURDATE() - INTERVAL 4 DAY`:** \u015euanki tarihten 4 g\u00fcn \u00e7\u0131kar\u0131r.<br>&nbsp;<br>&nbsp;**\u00d6rnek Kullan\u0131m:**<br>&nbsp;```sql<br>&nbsp;SELECT CURDATE() - INTERVAL 4 DAY; -- '2023-10-01'<br>&nbsp;```<\/p><p>### 3. **Tarih ve Saat Fark\u0131 Hesaplama: `TIMESTAMPDIFF()`**<\/p><p>- **`TIMESTAMPDIFF(unit, start_date, end_date)`:** \u0130ki tarih aras\u0131ndaki fark\u0131 belirtilen birimde (\u00f6rne\u011fin, g\u00fcn, saat, dakika) hesaplar.<br>&nbsp;<br>&nbsp;**\u00d6rnek Kullan\u0131m:**<br>&nbsp;```sql<br>&nbsp;SELECT TIMESTAMPDIFF(MINUTE, '2023-10-05 14:00:00', '2023-10-05 14:30:00'); -- 30<br>&nbsp;```<\/p><p>### 4. **Tarih ve Saat Aral\u0131\u011f\u0131 Sorgulama**<\/p><p>Tarih ve saat aral\u0131\u011f\u0131 sorgularken `BETWEEN` kullanmak yerine, a\u015fa\u011f\u0131daki gibi bir y\u00f6ntem daha g\u00fcvenilirdir:<\/p><p>**\u00d6rnek Kullan\u0131m:**<br>```sql<br>WHERE x &gt;= '2016-09-01'<br>AND x &lt; '2016-09-01' + INTERVAL 1 DAY;<br>```<\/p><p>Bu sorgu, `x` s\u00fctunundaki de\u011ferlerin 1 Eyl\u00fcl 2016 tarihinde oldu\u011funu kontrol eder. `BETWEEN` kullanmak, son tarihi de dahil edece\u011finden bu y\u00f6ntem daha do\u011frudur.<\/p><p>### 5. **Tarih ve Saat Formatlama: `DATE_FORMAT()`**<\/p><p>- **`DATE_FORMAT(date, format)`:** Tarih ve saat de\u011ferlerini belirtilen formatta d\u00f6ner.<br>&nbsp;<br>&nbsp;**\u00d6rnek Kullan\u0131m:**<br>&nbsp;```sql<br>&nbsp;SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- '2023-10-05 14:30:00'<br>&nbsp;```<\/p><p>### 6. **Tarih ve Saat \u00c7\u0131karma: `DATE()` ve `TIME()`**<\/p><p>- **`DATE(datetime)`:** Tarih ve saat de\u011ferinden sadece tarih k\u0131sm\u0131n\u0131 \u00e7\u0131kar\u0131r.<br>&nbsp;<br>&nbsp;**\u00d6rnek Kullan\u0131m:**<br>&nbsp;```sql<br>&nbsp;SELECT DATE('2023-10-05 14:30:00'); -- '2023-10-05'<br>&nbsp;```<\/p><p>- **`TIME(datetime)`:** Tarih ve saat de\u011ferinden sadece saat k\u0131sm\u0131n\u0131 \u00e7\u0131kar\u0131r.<br>&nbsp;<br>&nbsp;**\u00d6rnek Kullan\u0131m:**<br>&nbsp;```sql<br>&nbsp;SELECT TIME('2023-10-05 14:30:00'); -- '14:30:00'<br>&nbsp;```<\/p><p>### 7. **Zaman Dilimi \u0130\u015flemleri**<\/p><p>MySQL, zaman dilimi i\u015flemleri i\u00e7in `CONVERT_TZ()` fonksiyonunu sunar. Bu fonksiyon, bir tarih ve saat de\u011ferini bir zaman diliminden ba\u015fka bir zaman dilimine d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/p><p>**\u00d6rnek Kullan\u0131m:**<br>```sql<br>SELECT CONVERT_TZ('2023-10-05 14:30:00', '+00:00', '+03:00'); -- '2023-10-05 17:30:00'<br>```<\/p><p>Bu sorgu, UTC zaman dilimindeki bir tarih ve saat de\u011ferini T\u00fcrkiye saat dilimine (UTC+3) d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/p><p>### 8. **Zaman Dilimi Ayarlar\u0131**<\/p><p>MySQL sunucusunun zaman dilimi ayarlar\u0131n\u0131 \u00f6\u011frenmek i\u00e7in a\u015fa\u011f\u0131daki sorguyu kullanabilirsiniz:<\/p><p>**\u00d6rnek Kullan\u0131m:**<br>```sql<br>SELECT @@time_zone; -- 'SYSTEM' veya belirli bir zaman dilimi<br>```<\/p><p>E\u011fer zaman dilimi `SYSTEM` olarak ayarl\u0131ysa, MySQL sunucusu i\u015fletim sisteminin zaman dilimini kullan\u0131r.<\/p><p>---<\/p><p>Bu bilgilerle, MySQL'de tarih ve saat i\u015flemlerini nas\u0131l ger\u00e7ekle\u015ftirece\u011finizi daha iyi anlayabilirsiniz. Bir sonraki yaz\u0131da, alt sorgular ve daha geli\u015fmi\u015f SQL konular\u0131na de\u011finece\u011fiz.<\/p><p>&nbsp;<\/p>","excerpt":"MySQL'de tarih ve saat i\u015flemlerini nas\u0131l ger\u00e7ekle\u015ftirece\u011finizi daha iyi anlayabilirsiniz. Bir sonraki yaz\u0131da, alt sorgular ve daha geli\u015fmi\u015f SQL konular\u0131na de\u011finece\u011fiz.","created_at":"2025-01-13 15:18:13","updated_at":"2026-09-06 15:22:49","category_id":9,"view_count":584,"reading_time":3,"status":"published","editor_choice":0,"is_editor_choice":0,"published_at":"2025-01-13 15:18:13","featured_image":"resimyok.jpg","slug":"sql-notlari-tarih-ve-saat-islemleri","category_name":"Yaz\u0131l\u0131m","category_slug":"yazilim","category_color":"#ef4444"}