Yukarıdaki sorgu bilgi işlem bölümünde çalışan tüm personelin maaşlarının toplamını görüntüler.
Verilen alanın kayıtlar arasındaki en küçük değerini verir.
Yukarıdaki sorgu bilgi işlem bölümünda çalışan ve en düşük maaşı alan personeli görüntüler.
ROUND ()
Verilen alanın virgülden sonraki değerini yuvarlarlar. Tamsayı kısmını verir.
mysql> select round(15.56);
Resim 1.4
Yazım Formatı; bir işaretler grubudur… Bu negatif INTERVAL’ler için ‘-’ ile başlayabilir. tip; ise bir anahtar kelimedir… Bu yazım formatının nasıl yorumlanacağını gösterir. EXTRACT(tip FROM tarih) fonksiyonuyla INTERVAL tipini öğrenebilirsiniz.
Fonksiyona girilen tarih değeri DATE ise ve hesaplamalarda kullandığınız tip YEAR, MONTH ve DAY ise (Yani TIME bölümleri değilse); hesaplamalar sonucunda döndürülen değer DATE formatındadır.
Bunun dışındakilerde döndürülen değer TIME formatındadır.
ADDDATE(expr,gün)
ADDDATE(tarih, INTERVAL yazım formatı tip)
Bu fonksiyonla aynı çalışan diğer fonksiyonlar
DATE_SUB(tarih, INTERVAL yazım formatı tip)
SUBDATE(tarih, INTERVAL yazım formatı tip)
DATE_ADD (tarih, INTERVAL yazım formatı tip)
Örnek;
-> ‘1998-02-
mysql> SELECT ADDDATE(’1998-01-
-> ‘1998-02-
| Tip Adı |
YAZIM FORMATI |
| MICROSECOND |
: Mikrosaniyeler |
| SECOND |
: Saniyeler |
| MINUTE |
: Dakikalar |
| HOUR |
: Saatler |
| DAY |
: Günler |
| WEEK |
: Haftalar |
| MONTH |
: Aylar |
| QUARTER |
: Çeyrekler |
| YEAR |
: Yıllar |
| SECOND_MICROSECOND |
: Saniyeler.Mikrosaniyeler |
| MINUTE_MICROSECOND |
: Dakikalar.Mikrosaniyeler |
| MINUTE_SECOND |
: Dakikalar:Saniyeler |
| HOUR_MICROSECOND |
: Saatler.Mikrosaniyeler |
| HOUR_SECOND |
: Saatler:Dakikalar:Saniyeler |
| HOUR_MINUTE |
: Saatler:Dakikalar |
| DAY_MICROSECOND |
: Günler.Mikrosaniyeler |
| DAY_SECOND |
: Günler Saatler:Dakikalar:Saniyeler |
| DAY_MINUTE |
: Günler Saatler:Dakikalar |
| DAY_HOUR |
: Günler Saatler |
| YEAR_MONTH |
: Yıllar-Aylar |
Tablo 1.4 Tarih zaman parametreleri
Örnek;
$tarih = ’2005-01-
$sql = mysql_query(”SELECT ADDDATE(’$tarih’, INTERVAL 1 DAY) AS tarih”);
$sonuc = mysql_fetch_object($sql);
echo $sonuc->tarih;
//Sonuç: 2005-02-01
?>
-> ‘1998-01-02 01:01:01.000001′
mysql> SELECT ADDTIME(’01:00:00.999999′, ‘02:00:00.999998′);
-> ‘03:00:01.999997′
-> ‘1997-12-
mysql> SELECT CURDATE() + 0;
-> 19971215
-> ‘2005-10-
mysql> SELECT CURRENT_DATE() + 0;
-> 20051003
->2005-10-03 14:50:59
mysql>select CURRENT_TIMESTAMP;
->2005-10-03 14:50:59
-> ‘1997-12-
mysql> SELECT CURDATE() + 0;
-> 19971215
Bu fonksiyon MySQL 4.1.1 de kullanılır.
-> 1
mysql> SELECT DATEDIFF(’1997-11-30 23:59:59′,’1997-12-
-> -31
Yazım Formatı INTERVAL değerini belirler. Bu değer başlangıç değerine eklenir veya çıkarılır.
DATE_ADD (tarih, INTERVAL yazım formatı tip)
Bu fonksiyonla aynı çalışan diğer fonksiyonlar
DATE_SUB(tarih, INTERVAL yazım formatı tip)
ADDDATE(tarih, INTERVAL yazım formatı tip)
SUBDATE(tarih, INTERVAL yazım formatı tip)
mysql> SELECT ”1997-12-31 23:59:59″ + INTERVAL 1 SECOND;
-> 1998-01-01 00:00:00 ->Verilen DATETIME Değerine 1 Saniye Ekleniyor…
mysql> SELECT INTERVAL 1 DAY + ”1997-12-31″;
-> 1998-01-01 -> Verilen DATE Değerine 1 Gün Ekleniyor
mysql> SELECT ”1998-01-01″ - INTERVAL 1 SECOND;
-> 1997-12-31 23:59:59 -> Verilen DATE veya DATETIME Değerine 1 Saniye Ekleniyor ve Sonucu DATETIME Formatında Veriyor.
-> 1998-01-01 00:00:00 -> Verilen DATETIME Değerine 1 Saniye Ekleniyor
mysql> SELECT DATE_ADD(”1997-12-31 23:59:59″, INTERVAL 1 DAY);
-> 1998-01-01 23:59:59 ->Verilen DATETIME Değerine 1 Gün Ekleniyor
mysql> SELECT DATE_ADD(”1997-12-31 23:59:59″, INTERVAL ”1:1″ MINUTE_SECOND);
-> 1998-01-01 00:01:00 -> Verilen DATETIME Değerine 1 Dakika 1 Saniye Ekleniyor
mysql> SELECT DATE_SUB(”1998-01-01 00:00:00″,
INTERVAL ”1 1:1:1″ DAY_SECOND);
-> 1997-12-30 22:58:59 -> Verilen DATETIME Değerinden 1 Gün 1 Saat:1Dakika:1 Saniye Çıkarılıyor
mysql> SELECT DATE_ADD(”1998-01-01 00:00:00″,
INTERVAL ”-1 10″ DAY_HOUR);
-> 1997-12-30 14:00:00 -> Verilen DATETIME Değerinden 1 Gün, 1 Saat Çıkarılıyor
mysql> SELECT DATE_SUB(”1998-01-02″, INTERVAL 31 DAY);
-> 1997-12-02 -> Verilen DATE Değerinden 31 Gün Çıkarılıyor
?>
/*
MySQL’deki tarih alanı datetime olarak ayarlandığını varsayarsak….
+———————+
| tarihalani |
+———————+
| 2004-12-31 23:59:59 |
+———————+
*/
$sorgu = mysql_query(”SELECT tarihalani + INTERVAL 1 SECOND”); //Tarihe 1 Saniye Ekler
// ’2005-01-01 00:00:00′
$sorgu = mysql_query(”SELECT INTERVAL 1 DAY + tarihalani”); //Tarihe 1 Gün Ekler
// ’2005-01-
$sorgu = mysql_query(”SELECT tarihalani - INTERVAL 1 SECOND; //Tarihten 1 Saniye Çıkarır
// ’2004-12-31 23:59:58′
$sorgu = mysql_query(”SELECT DATE_ADD(tarihalani,INTERVAL 1 SECOND); //Tarihe 1 Saniye Ekler
// ’2005-01-01 00:00:00′
$sorgu = mysql_query(”SELECT DATE_ADD(tarihalani,INTERVAL 1 DAY)”); //Tarihe 1 Gün Ekler
// ’2005-01-01 23:59:59′
$sorgu = mysql_query(”SELECT DATE_ADD(tarihalani,INTERVAL ’1:1′ MINUTE_SECOND)”);//Tarihe 1 Dakika 1 Saniye Ekler
// ’2005-01-01 00:01:00′
$sorgu = mysql_query(”SELECT DATE_ADD(tarihalani,INTERVAL ’-1 10′ DAY_HOUR)”); //Tarihden 1 Gün 10 Saat Çıkarır
// ’2004-12-30 14:59:59′
$sorgu = mysql_query(”SELECT DATE_ADD(’1992-12-31 23:59:59.000002′,INTERVAL ’1.999999′ SECOND_MICROSECOND)”);//Tarihden 1 Saniye 999999 Mikrosaniye Ekler
// ’1993-01-01 00:00:01.000001′
?>
