- 1 1. DATETIME ya MySQL ni Nini?
- 2 2. Muhtasari wa Aina za Data za Tarehe na Muda za MySQL
- 3 3. Jinsi ya Kutumia DATETIME katika MySQL
- 4 4. Kufanya Kazi na Sekunde za Sehemu
- 5 5. Mazoezi Bora kwa DATETIME
- 6 6. Makosa ya Kawaida na Jinsi ya Kuyakataa
- 7 7. Muhtasari
- 8 8. Maswali Yanayoulizwa Mara kwa Mara (FAQ)
1. DATETIME ya MySQL ni Nini?
MySQL DATETIME ni aina ya data inayotumika kuhifadhi tarehe na muda katika uga mmoja. Kusimamia thamani za tarehe na muda katika hifadhidata ni muhimu kwa programu nyingi, kama vile usajili wa matukio na mifumo ya uhifadhi. Aina ya DATETIME huhifadhi tarehe na muda pamoja na inaunga mkono anuwai ya thamani. Safu yake ni kutoka '1000-01-01 00:00:00' hadi '9999-12-31 23:59:59', na pia inaunga mkono sekunde za sehemu.
2. Muhtasari wa Aina za Data za Tarehe na Muda za MySQL
2.1 Aina za Data kwa Kushughulikia Tarehe na Muda
MySQL hutoa aina zifuatazo za data kwa kufanya kazi na tarehe na muda:
DATE: Hifadhi tarehe (mwaka, mwezi, siku). Safu ni'1000-01-01'hadi'9999-12-31'.TIME: Hifadhi muda pekee. Safu ni'-838:59:59'hadi'838:59:59'.DATETIME: Hifadhi tarehe na muda pamoja. Safu ni'1000-01-01 00:00:00'hadi'9999-12-31 23:59:59'.TIMESTAMP: Hifadhi alama ya wakati ya UNIX. Safu ni'1970-01-01 00:00:01'hadi'2038-01-19 03:14:07'.
2.2 Tofauti Kati ya DATETIME na TIMESTAMP
DATETIME na TIMESTAMP zinafanana, lakini zina tofauti zifuatazo:
- Ukanda wa Muda :
DATETIMEhuhifadhi thamani imara isiyogombana na majira ya muda. Kinyume chake,TIMESTAMPhubadilishwa kuwa UTC inapohifadhiwa na hubadilishwa kuwa ukanda wa muda wa seva wakati wa kuchukuliwa. Kwa sababu hii,DATETIMEinafaa kwa thamani za tarehe/muda zisizogombana na ukanda wa muda (kwa mfano, nyakati za matukio), wakatiTIMESTAMPinafaa kwa data inayohusishwa na ukanda wa muda wa seva, kama vile logi. - Muundo wa Hifadhi :
DATETIMEhuhifadhiwa kama ilivyo, wakatiTIMESTAMPhuhifadhiwa kama alama ya wakati ya UNIX. Kwa hiyo, thamani zaTIMESTAMPhuathiriwa na mipangilio ya ukanda wa muda wa seva wakati wa kuwakilisha muda.
3. Jinsi ya Kutumia DATETIME katika MySQL
3.1 Kuunda Safu ya DATETIME
Ili kuunda safu yenye aina ya DATETIME, tumia sintaksia ya SQL ifuatayo:
CREATE TABLE sample_table (
event_time DATETIME
);
Katika mfano huu, safu ya DATETIME iitwayo event_time imeundwa katika jedwali linaloitwa sample_table.
3.2 Kuingiza Thamani za DATETIME
Thamani za MySQL DATETIME zinaweza kuingizwa katika muundo mbalimbali. Muundo wa msingi ni 'YYYY-MM-DD HH:MM:SS'. Kwa mfano:
INSERT INTO sample_table (event_time) VALUES ('2024-09-16 14:30:00');
Muundo ufuatao pia unaruhusiwa:
'YY-MM-DD HH:MM:SS': Muundo unaotumia mwaka wa tarakimu 2.'YYYYMMDDHHMMSS': Muundo usio na vichujo.
Mfano:
INSERT INTO sample_table (event_time) VALUES ('24-09-16 14:30:00');
INSERT INTO sample_table (event_time) VALUES (20240916143000);
Data iliyowekwa katika muundo huu itahifadhiwa kwa usahihi. Ikiwa mwaka umewekwa kwa tarakimu mbili, '70-99' hubadilishwa kuwa 1970-1999, na '00-69' hubadilishwa kuwa 2000-2069.
3.3 Kupata Thamani za DATETIME
Unapopata thamani za DATETIME, MySQL inaonyesha katika muundo chaguo-msingi 'YYYY-MM-DD HH:MM:SS'. Kwa mfano:
SELECT event_time FROM sample_table;
Hii hoja inaonyesha thamani katika safu ya DATETIME kwa kutumia muundo wa kawaida.
4. Kufanya Kazi na Sekunde za Sehemu
4.1 Usahihi wa DATETIME
Katika MySQL, thamani za DATETIME zinaweza kujumuisha sekunde za sehemu. Unaweza kubainisha usahihi kwa kutumia chaguo la fsp, ambalo huruhusu kuhifadhi sekunde za sehemu kutoka 0 hadi 6 tarakimu. Kwa mfano, kuunda safu yenye tarakimu 3 za sekunde za sehemu:
CREATE TABLE precise_times (
event_time DATETIME(3)
);
Katika mfano huu, safu ya event_time inaweza kuhifadhi sekunde za sehemu hadi tarakimu 3.
4.2 Kuingiza Thamani zenye Sekunde za Sehemu
Ili kuingiza thamani ya DATETIME inayojumuisha sekunde za sehemu, tumia yafuatayo:
INSERT INTO precise_times (event_time) VALUES ('2024-09-16 14:30:00.123');
This query stores the value including fractional seconds accurately. The fractional part is stored without being truncated, and the precision is preserved when retrieving the value.

5. Mazoezi Bora kwa DATETIME
5.1 Kuchagua Kati ya DATETIME na TIMESTAMP
- Wakati wa kutumia
DATETIME: Kwa thamani za tarehe/nyakati zisizobadilika ambazo hazitegemei majira ya saa (kwa mfano, nyakati za kuanza kwa tukio au tarehe za uhifadhi). - Wakati wa kutumia
TIMESTAMP: Kwa data za tarehe/nyakati zinazohusiana na majira ya saa ya seva (kwa mfano, uundaji wa rekodi au alama za wakati za usasishaji).
5.2 Usimamizi wa Majira ya Saa
Kwa sababu DATETIME haihifadhi taarifa za majira ya saa, programu yako lazima isimamishe majira ya saa kando. Kwa upande mwingine, TIMESTAMP inazingatia kiotomatiki majira ya saa ya seva wakati wa kuhifadhi na kurejesha thamani, na hivyo inafaa kwa mifumo inayofanya kazi katika majira ya saa tofauti duniani kote.
6. Makosa ya Kawaida na Jinsi ya Kuyakataa
6.1 Tarehe za Sifuri na Thamani Zisizotumika
Katika MySQL, ikiwa utajaribu kuingiza thamani ya DATETIME isiyofaa, tarehe ya sifuri kama '0000-00-00 00:00:00' inaweza kuhifadhiwa. Kwa kuwa hii kwa ujumla si tarehe halali, unapaswa kuthibitisha data ya ingizo ili kuzuia thamani zisizotumika kuingizwa. Kutekeleza uthibitishaji unaohakikisha ingizo linafuata safu na muundo sahihi kunaweza kusaidia kuzuia tarehe za sifuri kuhifadhiwa.
6.2 Kutumia Usahihi Visivyofaa
Unapoeleza usahihi wa sekunde za sehemu ya desimali, kutumia usahihi usio sahihi kunaweza kutoa matokeo yasiyotabirika. Weka usahihi wa sekunde za sehemu ya desimali tu inapohitajika, na chagua thamani ya fsp kwa umakini. Kwa mfano, ikiwa programu yako haihitaji usahihi wa chini ya sekunde, huna haja ya kuongeza sekunde za sehemu ya desimali kwenye safu ya DATETIME.
7. Muhtasari
Katika makala hii, tumeelezea kwa kina aina ya DATETIME ya MySQL. DATETIME ni aina ya data yenye manufaa sana kwa kuhifadhi tarehe na wakati, na inafaa wakati unahitaji kuhifadhi thamani ambazo hazipaswi kuathiriwa na majira ya saa. Kwa kuelewa tofauti kati ya DATETIME na TIMESTAMP, jinsi majira ya saa yanavyofanya kazi, na jinsi ya kutumia sekunde za sehemu ya desimali, unaweza kusimamia data ya tarehe/wakati kwa ufanisi zaidi katika hifadhidata yako. Zaidi ya hayo, kujua makosa ya kawaida na jinsi ya kuyakataa kunasaidia kudumisha uthabiti na uaminifu wa data.
8. Maswali Yanayoulizwa Mara kwa Mara (FAQ)
Q1: To tofauti kuu kati ya DATETIME na TIMESTAMP ni nini?
DATETIME huhifadhi tarehe na wakati ulio thabiti ambao hauitegemei majira ya saa. Kwa mfano, inafaa kuhifadhi tarehe za uhifadhi au nyakati za matukio ambazo zinapaswa kubaki sawa katika majira yoyote ya saa. Kinyume chake, TIMESTAMP huhifadhiwa katika UTC na hubadilishwa kuwa majira ya saa ya seva wakati wa kurejesha. Inafaa kwa data ya tarehe/wakati inayotegemea majira ya saa ya seva, kama vile logi.
Q2: Ninawezaje kuhifadhi sekunde za sehemu ya desimali na DATETIME?
Unaweza kuweka usahihi wa sekunde za sehemu ya desimali kwa kubainisha thamani ya fsp unapounda safu ya DATETIME. Kwa mfano, DATETIME(3) huhifadhi sekunde za sehemu ya desimali hadi tarakimu 3. Tumia thamani iliyo na muundo sahihi ikijumuisha sekunde za sehemu ya desimali unapoweka, na itahifadhiwa kwa usahihi.
Q3: Je, ninapaswa kutumia DATETIME au TIMESTAMP?
Inategemea matumizi yako. Tumia DATETIME unapohitaji kuhifadhi tarehe na wakati ulio thabiti. Tumia TIMESTAMP kwa data ya tarehe/wakati inayoguswa na majira ya saa ya seva, kama vile uundaji wa rekodi au nyakati za usasishaji. Kwa kuwa TIMESTAMP hufanya ubadilishaji wa majira ya saa kiotomatiki, inafaa wakati mfumo wako unahitaji kufanya kazi katika majira ya saa tofauti.


