mysql date format timestamp functions with examples
Bu kapsamlı eğitim, MySQL Tarih Formatı ve mevcut tarih, tarih ekleme, saat ekleme vb. Gibi Zaman Damgası işlevlerinin sözdizimi ve örneklerini sağlar:
Bu eğitimde, MySQL Tarih ve Saat veri türleri ve tarih ve saat değerlerini değiştirmek için MySQL tarafından sağlanan çeşitli işlevler hakkında derinlemesine bilgi edineceğiz.
MySQL, tarih ekleme ve çıkarma, 2 tarih arasındaki farkı bulma ve verilen tarih-saat değerinin belirli bölümlerini çıkarma gibi farklı işlemleri gerçekleştirmek için harika bir dizi işlev / yardımcı program sağlar.
Ne öğreneceksin:
- MySQL Tarih Formatı ve Saat İşlevleri
- Sonuç
MySQL Tarih Formatı ve Saat İşlevleri
MySQL tablolarında tarih saat sütun değerleri üzerinde herhangi bir işlem yapılması gerektiğinde bu işlevler çok önemlidir.
Ön Koşullar
Eğitimde kullanılan örnekleri çalıştırmak için, MySQL kurulumunun yerel kurulumuna ihtiyacınız olacaktır.
= >> MySQL'i kurmak için öğreticimize bakın İşte.
TARİH ve SAAT Veri Türleri
Veri türleri YEAR, DATE, TIME, DATETIME ve TIMESTAMP'ı içerir.
MySQL, tarih ve saat değerlerini 5 farklı veri türü kullanarak depolar, yani YEAR, DATE, TIME, DATETIME ve TIMESTAMP. MySQL tarafından sağlanan TARİH FORMATLARI ve DATETIME FONKSİYONLARI'na daha derinlemesine dalmadan önce bunları aşağıdaki tabloda kısaca anlamaya çalışalım.
Tür | Sözdizimi | Aralık | Hafıza | Biçim |
---|---|---|---|---|
% H | Saat - 00-23 | |||
YIL | Sadece yıl kısmını saklardım colName YIL | 1901 - 2155 | 1 | 'YYYY' |
TARİH | Yalnızca DATE bölümünü saklamak için kullanılır. colName TARİH | '1000-01-01' ile '9999-12-31' | 3 | 'YYYY-AA-GG' |
ZAMAN | Yalnızca TIME bölümünü depolamak için kullanılır. colName ZAMAN colName ZAMAN (n) n -> doğruluk veya kesirli bileşen | '00: 00: 00' - '23: 59: 59' | 3 + kesirli | 'Hh: mm: ss. (Kesir)' |
DATETIME | Hem DATE hem de TIME depolamak için kullanılır colName DATETIME colName DATETIME (n) n -> doğruluk veya kesirli bileşen | '1000-01-01 00: 00: 00.000000' ile '9999-12-31 23: 59: 59.999999' | 5 + kesirli | 'YYYY-AA-GG ss: dd: ss. (Kesir)' |
TIMESTAMP | Hem DATE hem de TIME depolamak için kullanılır colName TIMESTAMP colName TIMESTAMP (n) n -> doğruluk veya kesirli bileşen | '1970-01-01 00:00:01' UTC'den '2038-01-19 03:14:07' UTC'ye. | 4 + kesirli | 'YYYY-AA-GG ss: dd: ss. (Kesir)' |
Şimdi, kesirli depolama için bellek gereksinimlerini anlayacağız. TIME, DATETIME ve TIMESTAMP veri türleri için belirtilen kesirli bileşene bağlı olarak tüketilen bellek farklı olacaktır.
Kesirli basamak yok | Bellek (bayt cinsinden) |
---|---|
0 | 0 |
1-2 | 1 |
3-4 | iki |
5-6 | 3 |
Yukarıdaki tabloyu kullanarak, Örneğin, - TIME (5) olarak bir sütun tipimiz varsa.
Daha sonra kullanılan toplam bellek => TIME veri türü tarafından kullanılan bellek + 5 kesirli bileşen tarafından kullanılan bellek => 3 + 3 => 6 bayt olacaktır.
Tüm bu veri türlerini tek bir tablonun parçası olarak gösterelim ve her türe atanan değerleri görelim.
CREATE TABLE datetime_illustration(year_col YEAR, date_col DATE, time_col TIME, time_col_fractional TIME(2), datetime_col DATETIME, datetime_col_fractional DATETIME(6), timestamp_col TIMESTAMP, timestamp_col_fractional TIMESTAMP(6))
Geçerli zaman damgası olan 'now ()' işlevini kullanarak tabloya tek bir satır ekleyin. Sütunun veri türüne bağlı olarak, bu işlevi nasıl kullanmanın geçerli tarih ve saatin yalnızca gerekli kısmının kırpılmasına / eklenmesine neden olacağına dikkat edin.
insert into datetime_illustration values (now(), now(), now(), now(), now(), now(), now(), now()); select * from datetime_illustration
Şimdi, verileri farklı sütunlardaki analiz etmek için tablonun içeriğini görelim.
select * from datetime_illustration
Bu nedenle, yukarıdaki verileri şu şekilde özetliyoruz:
- Tüm sütunlar, veri türlerine göre atanmış değerler aldı, Örneğin, ilk sütun için - YEAR - geçerli zaman damgası olan ‘now ()’ işlevini kullanarak eklemiş olsak da, eklenen değer yalnızca geçerli tarih saatinin yıl bölümüdür - yani 2020.
- now () işlevi geçerli tarih saatini şu biçimde döndürür - gg: mm: yyyy ss: dd: ss
- Sütun adlarında '_fraksiyonel' olan kesirli kısma dikkat edin. Belirtilen kesirli basamakların sayısına bağlı olarak, kesirli değerler yakalanır ve görüntülenir.
DATETIME ve TIMESTAMP Alanlarının Otomatik Olarak Başlatılması ve Güncellenmesi
Gerçek hayat senaryolarında - çoğu zaman, DATETIME başlatma ve güncellemeler otomatik olacak şekilde yapılandırılır.
Bunun anlamı, tabloların genellikle 2 sütuna sahip olmasıdır - oluşturulan_time ve updated_time .
created_time sütunu, satır her eklendiğinde geçerli sistem saatinin değerini alacak şekilde yapılandırılır ve benzer şekilde updated_time, tablonun belirli bir satırına yapılan herhangi bir güncelleme olduğunda geçerli sistem saatini alacak şekilde yapılandırılır.
Lütfen bunu not al, satır ekleme sırasında, hem oluşturulan_zaman hem de güncellenen_zaman aynı değere sahip olacaktır. Satırda yapılan sonraki tüm güncellemeler, updated_time alanının mevcut sistem saatiyle güncellenmesine neden olur.
Otomatik başlatma ve güncellemeye sahip böyle bir tablo oluşturmayı deneyelim.
Adlı bir tablo oluşturacağız hisse senedi fiyatı hisse senedi simgesi, fiyat ve tarih saat alanlarına sahip - created_on ve updated_on.
create table stock_price(symbol varchar(100), price decimal(10,2), created_on datetime default current_timestamp, updated_on datetime default current_timestamp on update current_timestamp)
Tabloya bazı veriler ekleyin:
insert into stock_price(symbol,price) values('AMZN','3000.10');
Sonucu görelim (sembol ve fiyat için yeni değerler girdiğimize dikkat edin - datetime sütunları, created_on ve updated_on otomatik olarak başlatılmalıdır)
select * from stock_price
Windows 10 için ücretsiz ssh istemcisi
Aşağıda gösterildiği gibi 'AMZN' hissesi için hisse senedi fiyatını güncellemeyi deneyin:
update stock_price set price='3005.15' where symbol='AMZN'
Ve şimdi, tablo için verileri tekrar getirin. Stock_price güncellemesi ne zaman olursa olsun, updated_time değerinin değiştiğini görmeliyiz.
select * from stock_price
Artık yukarıdaki örnekten, updated_on sütununun değerinin güncelleme zaman damgasına güncellendiğini fark edebilirsiniz.
MySQL Tarih ve Saat İşlevleri
MySQL, tarih ve saatle ilgili veri türlerine sahip sütunlar için çok sayıda işlev sağlar.
Bu işlevler genellikle,
- Verileri sorgularken saklanan bir tarihi gerekli bir biçime dönüştürün.
- Sütunun mevcut değerine bir aralık eklemek, mevcut ayar değerlerinden saatleri çıkarmak vb. Gibi mevcut tarih ve saat alanlarını değiştirmek.
- Depolanan değerlerden belirli bilgilerin çıkarılması, Örneğin, saklanan değerden yalnızca 'tarih' kısmını çıkarmak ve aşağıdaki gibi başka filtreleme / işlemler yapmak GRUPLAMA tarih vb. ile
Bu bölümde, en sık kullanılan Tarih ve Saat işlevlerine karşı örnekler göreceğiz.
>> Bakın İşte bu tür işlevlerin tam listesi için.
# 1) Geçerli Tarih ve Saati Alma
MySQL, tarih ve saatin geçerli değerlerini almak için birçok kullanışlı işlev / sabit değer sağlar ve genellikle tarih saat sütunlarındaki değerleri saklarken veya geçerli tarih ve saat değerlerinden herhangi bir belirli aralığa karşı alırken kullanılır.
a) lor ()
Bu işlev geçerli tarihi alır. Curdate () işlevinin diğer eş anlamlıları - CURRENT_DATE, CURRENT_DATE (), CURRENT_DATE ( kesirli Sayılar )
Bu işlevin örneği aşağıda gösterilmiştir:
select curdate(), CURRENT_DATE(), CURRENT_DATE
b) perde ()
Bu işlev geçerli saati alır. Kesirli bir kısım elde etmek için (6 haneye kadar) parantez içindeki kesiri perdelik olarak belirtin (3) Bu, sistem zamanının mevcut değerini 3 ondalık basamağa kadar getirir.
Curtis () işlevinin diğer eş anlamlıları: CURRENT_TIME, CURRENT_TIME (), CURRENT_TIME ( kesirli Sayılar )
select curtime(), CURRENT_TIME(), CURRENT_TIME, curtime(6), CURRENT_TIME(6)
c) şimdi ()
Bu işlev, geçerli zaman damgasını alır. Parantez içinde kesirli kısmı belirtin, Örneğin, şimdi (4), geçerli zaman damgasını 4 basamaklı ondalık basamağa kadar getirir.
Now () işlevinin diğer eş anlamlıları şunları içerir: CURRENT_TIMESTAMP, CURRENT_TIMESTAMP (), CURRENT_TIMESTAMP ( kesirli Sayılar )
select now(), CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP, now(6), CURRENT_TIMESTAMP(6)
# 2) Tarihleri Ekleme ve Çıkarma
MySQL, sütunda depolanan mevcut bir değere tarih ve saat değerlerini ekleme ve çıkarma veya veri sorgulama sırasında kullanılacak işlevler sağlar. Örnekler yardımıyla fonksiyonları anlayacağız.
Çıkarmaya tarih-saat ekleme yapmak için aşağıdaki tabloyu kullanacağız.
create table datetime_calc(datecol DATE, timecol TIME, datetimecol DATETIME(6));
INSERT ifadelerini aşağıda gösterildiği gibi kullanarak yukarıdaki tabloya bazı girişler ekleyin:
insert into datetime_calc values(now(), now(), now(6)); insert into datetime_calc values(now(), now(), now(6));
Yukarıdaki tabloyu sorgulayalım ve depolanan verileri görelim:
Bir tablodaki sütunları güncellemenin yanı sıra, herhangi bir belirli tarih / saat veya tarih saat değerini uygulayarak SELECT deyimini kullanarak doğrudan bir tarih saat manipülasyonu yapabiliriz.
a) EKLE ()
Adından da anlaşılacağı gibi, bu işlev mevcut bir tarih değerine tarih eklemek için kullanılır; bu tür olabilir - DATE, DATETIME veya TIMESTAMP
Sözdizimi:
ADDDATE(inputTimeValue/fieldName, noOfDays)
ADDDATE, GÜN, HAFTA, SAAT, DAKİKA, İKİNCİ vb. Olabilecek Aralık değeriyle de çağrılabilir.
Sözdizimi, bu durumda, şu şekilde değişir:
ADDDATE(inputTimeValue/fieldName, Interval intervalUnit)
Bunu daha iyi anlamak için birkaç örnek görelim.
SELECT ADDDATE('2020-08-15', 31); // output '2020-09-15'
İkinci bağımsız değişken olarak bir tamsayı değeri sağlandığında, verilen tarihe eklenecek gün sayısı olarak kabul edilir.
Interval için - MONTH, HOUR ve WEEK gibi başka örnekler şunlardır:
SELECT ADDDATE('2020-01-02', INTERVAL 1 MONTH); //output 2020-02-02
SELECT ADDDATE('2020-01-02 12:11:11', INTERVAL 5 HOUR); //output 2020-01-02 17:11:11
SELECT ADDDATE('2020-01-02 12:11:11', INTERVAL 1 WEEK); //output 2020-01-09 12:11:11
Diğer aralık örnekleri şunlar olabilir - MINUTE, SECOND, QUARTER, vb.
Mevcut tablonun bir sütununu güncellemek için, Örneğin, 'datetime_calc' oluşturduğumuz tablo için 'datecol' değerini güncellemek ve sütundaki tüm tarihlere 10 gün eklemek istiyorsak, sorguyu aşağıdaki gibi kullanabiliriz:
update datetime_calc set datecol=ADDDATE(datecol, 30);
Şimdi, datetime_calc tablosundaki tüm verileri göstermek için SELECT * 'i kullanın.
SELECT * FROM datetime_calc
Yukarıdaki çıktıda datecol sütununun değerlerinin mevcut değerlere 30 gün eklendikten sonra 25-08-2020 arasında 24-09-2020 olarak güncellendiğini görebiliriz.
b) EKLEME ZAMANI ()
ADD_DATE'e benzer şekilde, ADD_TIME işlevi, mevcut bir - DATETIME, TIME veya TIMESTAMP sütununa / alanına veya belirli bir girişe bir zaman bileşeni eklemek için kullanılabilir.
Sözdizimi:
ADDTIME(inputTimeValue/fieldName, ‘hh:mm:ss’)
Misal:
SELECT ADDTIME('2020-01-02 12:11:11', '01:10:00'); // output 2020-01-02 13:21:11
Bir tablodaki tarih saat sütununu, o sütundaki tüm değerlere 5 saat ekleyerek güncellediğimiz bir örneğe bakalım. Örnek bir sorgu:
update datetime_calc set datetimecol=ADDTIME(datetimecol, '05:00:00')
Daha önce tablo çıktısı:
// output '2020-08-25 05:53:37.851379' '2020-08-25 05:53:39.711515'
Daha sonra tablo çıkışı:
// output '2020-08-25 10:53:37.851379' '2020-08-25 10:53:39.711515'
c) ALT TARİH ()
SUBDATE, ADDDATE ile tam olarak benzerdir, tek fark, SUBDATE'in verilen Aralığı / No'yu çıkarmasıdır. sütun / alan değerinden gün sayısı.
Sözdizimi:
SUBDATE(inputTimeValue/fieldName, noOfDays)
SUBDATE () işlevini göstermek için birkaç örneğe bakalım.
SELECT SUBDATE('2020-08-15', 31); // output 2020-07-15
Aşağıdaki örnek, hafta / gün vb. Olarak belirtilen bir Aralığın çıkarılmasını gösterir.
SELECT SUBDATE('2020-01-02 12:11:11', INTERVAL 1 WEEK); // output 2019-12-26 12:11:11 SELECT SUBDATE('2020-01-02 12:11:11', INTERVAL 12 HOUR); // output 2020-01-02 00:11:11
d) ALT ZAMAN ()
SUBTIME, verilen bir tarih saat veya zaman alanı değerinden 'ss: dd: ss' de belirtilen zaman değerini çıkarır.
Sözdizimi:
SUBTIME(inputTimeValue/fieldName, ‘hh:mm:ss’)
SUBTIME () işlevi örnekleri:
SELECT SUBTIME('2020-01-02 12:11:11', '02:20:05'); // output 2020-01-02 09:51:06
# 3) Tarihleri Dönüştürme
MySQL, tarihleri bir formattan diğerine dönüştürmekten çeşitli yerleşik işlevler sağlar. Tarihleri dönüştürmek için en yaygın kullanılan işlevleri görelim.
a) CONVERT_TZ ()
Bu fonksiyon, tarihi bir saat diliminden diğerine dönüştürmek için kullanılır. Bunlar, verilerinizin UTC saat dilimi kullanılarak depolandığını varsaydığınızda ve seçtiğiniz zaman dilimine dönüştürmek istediğinizde kullanışlıdır.
Örneğin, UTC'yi MET'e (Orta Avrupa Saati) çevirir.
SELECT CONVERT_TZ('2004-01-01 12:00:00', 'UTC', 'MET');
İpuçları / Notlar
# 1) MySQL sistem veritabanındaki tüm saat dilimlerinin listesini almak için aşağıdaki sorguyu çalıştırabilir ve bir saat diliminden diğerine dönüştürmek için saat dilimi adlarından herhangi birini kullanabilirsiniz.
select * from mysql.time_zone_name
#iki) Saat dilimi bilgisi, MySQL sunucu örneğinin yüklenmesi sırasında doldurulur. Yukarıdaki sorgunun sonucu NULL ise, o zaman önce MySQL sistem tablolarında saat dilimi değerlerini doldurmanız gerekebilir.
>> Bunu takip edin bağlantı bu konuda daha fazla yardım için.
b) FROM_UNIXTIME ()
Bu işlev, belirli bir UNIX TIMESTAMP'ı MySQL tarih saat biçimine dönüştürmek için kullanılır.
SELECT FROM_UNIXTIME(1547430881); //output 2019-01-14 07:24:41
c) UNIX_TIMESTAMP
Bu işlev, belirli bir MySQL tarih saatini UNIX zaman damgasına dönüştürmek için kullanılır.
SELECT UNIX_TIMESTAMP('2020-03-15 07:10:56.123') //output 1584236456.123
UNIX zaman damgası, belirli bir tarihin 1 Ocak 1970 UTC'den bu yana geçen saniye biçiminde temsilidir.
>> Bakın İşte UNIX zaman damgası hakkında daha fazla ayrıntı için.
# 4) DateTime Sütunlarının Belirli Bölümlerini Getirme
Zaman zaman, tablodaki bir tarih saat alanı değeri için tarih değerinin belirli bir bölümünü getirmek istenir. Örneğin varsayalım ki hayır'ı saymak istiyorsunuz. gün, hafta, ay vb. olarak gruplandırın.
Ve genel olarak konuşursak, bu değerler tabloda ayrı sütunlar olarak saklanmaz - Örneğin, bir tarih saat alanı olacak ve tarih, ay, yıl vb. gibi ayrı sütunlara sahip olmayan - created_on gibi tek bir sütuna sahip olursunuz.
MySQL, istediğiniz bölümü DateTime alanından çıkarabileceğiniz birçok yararlı yöntem sağlar.
Bir tarih saat değerimiz olduğunu varsayalım - '2020-03-15 07: 10: 56.123'
Yukarıdaki datetime değerini kullanan örneklerle yaygın olarak kullanılan bazı işlevlere göz atalım.
a) GÜNÜ çıkar
MySQL, DAY bilgilerini çıkarmak için aşağıdaki işlevleri sağlar:
TARİH () - DateTime alanının DATE () bölümünü çıkarın.
xbox one için en iyi sanal gerçeklik başlığı
SELECT DATE('2020-03-15 07:10:56.123'); //output 2020-03-15
AYIN GÜNÜ() - Datetime'ın DAY bölümünü çıkarın. Esasen ayın günü. Bu işlevi kullanmanın kısaltması GÜN () şeklindedir
SELECT DAYOFMONTH('2020-03-15 07:10:56.123'); //output 15
HAFTANIN GÜNÜ () - Haftanın gününe karşılık gelen dizini çıkarır - 1 ile 7 arasındaki değerler.
SELECT DAYOFWEEK('2020-03-15 07:10:56.123'); //output 1
GÜN BOYU () - Hayır açısından günü çıkarır. bir yılda geçen gün sayısı. Değerler 1 ile 365 (veya artık yılsa 366) arasında değişir.
SELECT DAYOFYEAR('2020-03-15 07:10:56.123'); //output 75
GÜN ADI () - Pazartesiden Pazara kadar değişen değerlerle günün adını ayıklar.
SELECT DAYNAME('2020-03-15 07:10:56.123'); //output Sunday
b) TIME çıkar
MySQL, TIME değerlerini çıkarmak için aşağıdaki işlevleri sağlar:
ZAMAN () - Saat bölümünü ss: dd: ss biçiminde ayıklar (varsa kesirli saniye bileşeniyle).
SELECT TIME('2020-03-15 07:10:56.123'); //output '07:10:56.123'
HOUR () - Alanın / değerin saat kısmını 1-24 arasında değişen değerler çıkarır.
SELECT HOUR('2020-03-15 07:10:56.123'); //output 7
DAKİKA () - Verilen tarih saatinin dakika kısmını (1-60 arasında değişen değerler) çıkarır.
SELECT MINUTE('2020-03-15 07:10:56.123'); //output 10
İKİNCİ() - Verilen tarih saatinin saniye bölümünü çıkarır - 1-60 arasında değişen değerler.
SELECT SECOND('2020-03-15 07:10:56.123'); //output 56
MICROSECOND () - Verilen DateTime'ın mikrosaniye bölümünü ayıklar.
SELECT MICROSECOND('2020-03-15 07:10:56.123'); //output 123000
c) MONTH'u çıkarın
AY () - Ay endeksini çıkarır. 1-12 arası değerler.
SELECT MONTH('2020-03-15 07:10:56.123'); //output 3
MONTHNAME () - Ay adını çıkarır. Ocak'tan Aralık'a kadar değişen değerler.
SELECT MONTHNAME('2020-03-15 07:10:56.123'); //output March
d) HAFTA, YIL ve ÇEYREK ayıklayın
HAFTA() - Verilen DateTime değeri için yılın HAFTASINI çıkarır.
SELECT WEEK('2020-03-15 07:10:56.123'); //output 11
YIL () - Tarihin YEAR kısmını çıkarır.
SELECT YEAR('2020-03-15 07:10:56.123'); //output 2020
ÇEYREK () - Yıla göre çeyreği çıkarır. 1 ile 4 arasında değişen değerler.
SELECT QUARTER('2020-03-15 07:10:56.123'); //output 1
Yukarıdaki yöntemlerin tümü çoğunlukla veri analizi ve tahmin yapmak için kullanılır - Örneğin, ayın hangi günleri hayırdı. en yüksek sipariş oranı vb.
# 5) 2 Tarih Arasındaki Farkı Bulmak
Verilen 2 tarih saat alanı değeri arasındaki farkı bulmak için MySQL, DATEDIFF () ve TIMEDIFF () işlevlerini sağlar.
a) DATEDIFF ()
2 DateTime (veya tarih) değeri arasındaki farkı gün sayısı olarak döndürür.
Sözdizimi:
DATEDIFF(DateTime1, DateTIme2)
DATEDIFF () işlevi için bazı örnekler görelim:
DATEDIFF () DateTime girişlerini kullanıyor.
SELECT DATEDIFF('2020-01-05 12:11:11.11', '2020-01-03 14:11:11') //output 2
Tarih girişlerini kullanarak DATEDIFF ().
SELECT DATEDIFF('2020-04-02', '2020-01-04') //output 89
Negatif çıkışlı Tarih girişlerini kullanan DATEDIFF ().
SELECT DATEDIFF('2020-04-02', '2020-04-05') //output -3
b) TIMEDIFF ()
Bu işlev, TIMEDIFF () işlevinin çağrıldığı girdiye bağlı olarak isteğe bağlı bir kesirli bölümle 'ss: dd: ss' olarak ifade edilen 2 tarih saat (veya zaman) değeri arasındaki farkı döndürür.
Sözdizimi:
TIMEDIFF(DateTime1, DateTIme2)
Yukarıdaki sözdizimine göre, TIMEDIFF () işlevinin sonucu, ifade => için 'hh: mm: ss' olarak belirtilen zaman olacaktır. DateTime1 - DateTIme2
Lütfen bunu not al,
- Hem İfade 1 hem de İfade2 aynı türdendir - yani, bir tarihsaat, diğeri tam zaman, bir NULL değeri döndürecektir.
- İfade1 ve İfade2 yalnızca tarih olamaz. Misal: DATEDIFF (2020-01-01, 2020-02-01) NULL döndürür.
TIMEDIFF () işlevi için bazı örnekler görelim:
DateTime girişlerini kullanarak TIMEDIFF ().
SELECT TIMEDIFF('2020-01-4 12:11:11.11', '2020-01-03 12:11:11') //output 24:00:00.11
Zaman girişlerini kullanarak TIMEDIFF ().
SELECT TIMEDIFF('12:11:11.11', '02:12:11') //output 09:59:00.11
TIMEDIFF () negatif çıktı döndürüyor.
SELECT TIMEDIFF('2020-01-01 12:11:11.11', '2020-01-03 12:11:11') //output -47:59:59.89
Lütfen bunu not al hem DATEDIFF () hem de TIMEDIFF (), ilk bağımsız değişken ikinciden daha küçük olduğunda NEGATİF değerler döndürebilir - yani, ilk bağımsız değişken, ikincisine kıyasla daha eski bir dateTime değeridir.
# 6) Tarihleri Biçimlendirme
DATE_FORMAT () işlevi, tarihi verilen biçime dönüştürür.
Örneğin: Gerekli tarih aa / yyyy biçiminde dönüştürülüyor.
SELECT DATE_FORMAT('2020-03-15 07:10:56.123', '%m/%Y'); //output 03/2020
Biçim belirticilerini kullanmak için bazı yaygın kuralları görelim:
Biçim | Açıklama |
---|---|
% Y | Yıl değeri - 4 hane |
% Y | Yıl değeri - 2 hane |
% M | Ay adı, Ocak, Şubat gibi |
% m | Ay adı - sayısal |
% d | Ayın günü |
% h | Saat - 00 - 12 |
%ben | Dakika |
% S | Saniye |
Gereksinime bağlı olarak, bu format belirleyicileri kullanılabilir ve MySQL DateTime gerekli formata dönüştürülebilir.
Misal: Gg / aa / yyyy biçimine dönüştürme şu şekilde belirtilebilir:
SELECT DATE_FORMAT('2020-03-15 07:10:56.123', '%d/%m/%Y'); //output 15/03/2020
>> Bakın İşte MySQL tarafından desteklenen format belirleyicilerin tam listesi için.
Sıkça Sorulan Sorular
S # 1) MySQL'de depolanan tarihin yıl bölümünü nasıl değiştirebiliriz?
Cevap: Yıl değerini belirli bir tarih için belirli bir sayıya güncellemek için, DATE_ADD işlevini yerine getirin ve geçerli tarih ile değiştirmek istediğimiz yıl arasındaki farkı ekleyin.
Örneğin: '2020-03-15 07: 10: 56.123' tarihimiz olduğunu ve tarihin yıl kısmını 2018 olarak değiştirmek istediğimizi varsayalım. Bunu yapmak için,
- İlk olarak güncellenecek yıl ile tarihin gerçek yılı arasındaki farkı bulabiliriz. Bu YEAR işlevi kullanılarak gerçekleştirilebilir.
SELECT (2018 - year('2020-03-15 07:10:56.123')) //output -2
- Şimdi DATE_ADD işlevini kullanarak bu -2'yi yıl aralığı olarak ekleyebiliriz.
SELECT DATE_ADD('2020-03-15 07:10:56.123', INTERVAL -2 year) //output 2018-03-15 07:10:56.123000
Tarihin yıl kısmını değiştirdiğimizi yukarıda görebilirsiniz.
Tarihin belirli bir bölümünü değiştirme gereksinimi olduğunda aynı adımlar dizisi kullanılabilir. Misal: Ay, Gün vb.
S # 2) MySQL'de gerekli formatta datetime nasıl değiştirilir?
dvd'yi bilgisayara kopyalama programı
Cevap: MySQL, sorgu sonuçlarında görüntülemek için tarih saatini gerekli biçimlendirilmiş dizede dönüştürmek için DATE_FORMAT () işlevi sağlar.
>> Bakın İşte format belirticilerinin tam listesi için.
Misal: Tarih saati - gg: dd: yyyy biçimine dönüştürmek için aşağıdaki sorguyu kullanabilirsiniz:
SELECT DATE_FORMAT('2020-03-15 07:10:56.123', '%d:%m:%Y');
S # 3) MySQL'deki tarih formatı nedir?
Cevap: MySQL'deki standart tarih biçimi 'gg-aa-yyyy ss: dd: ss' şeklindedir. kesirli bölüm }
MySQL'de depolanan örnek tarih saat değeri - '2020-03-15 07: 10: 56.123'
S # 4) MySQL'de DATE veri tipine sahip bir tablo nasıl oluşturulur.
Cevap: MySQL, ihtiyaca göre tarih ve saat değerlerini depolamak için farklı veri türleri sağlar. Yalnızca tarihleri depolamak için - DATE veri türü kullanılabilir. Verileri yyyy-aa-gg biçiminde depolar.
DATE türü olarak sütunu belirleme örneğini görelim:
CREATE TABLE date_illustration(date_col DATE);
Sonuç
Bu eğitimde, tarih ve saat değerlerini depolamak için MySQL tarafından sağlanan farklı veri türlerini ve MySQL tarafından sağlanan çeşitli kullanımı kolay işlevlerin tarih ve saat değerlerinde hesaplamalar yapmak için nasıl kullanılabileceğini öğrendik.
Verilen DateTime değerinin belirli kısımlarını çıkarmak, belirli bir tarihi başka bir forma dönüştürmek, mevcut değerlere tarih / saat değerleri eklemek vb. Gibi farklı işlevleri de öğrendik.
DateTime, MySQL'deki en önemli veri türlerinden biridir ve bir olayın meydana geldiği zamanla ilgili ayrıntıları getirmek için çok önemlidir.
Bu değerler, makine öğrenimi modellerini hazırlamak ve kritik iş kararları almak için çok sayıda tarih dilimleme ve dilimleme işleminin yapıldığı veri analistleri / makine öğrenimi / fiyatlandırma modelleri vb. Tarafından çok yaygın olarak kullanılmaktadır.
Önerilen Kaynaklar
- C # DateTime Öğreticisi: Örnekle C # 'da Tarih ve Saatle Çalışma
- PL SQL Tarih Saat Biçimi: PL / SQL'de Tarih ve Saat İşlevleri
- Örneklerle Python DateTime Eğitimi
- Örneklerle C ++ 'da Tarih ve Saat İşlevleri
- MySQL Kod Örnekleriyle Görünüm Öğreticisini Oluştur
- MySQL Tabloya Ekle - İfade Sözdizimi ve Örnekler Ekle
- MySQL Örneklerle Tablo Eğitimi Oluşturun
- MySQL Silme İfadesi - Komut Sözdizimini ve Örnekleri Sil