Jump to content
php.lv forumi

SQL/PHP date from to


Elvis L

Recommended Posts

Sveiki, nevaru saprast ko daru nepareizi,

man ir ieraksti tabulā, kur katram ierakstam nāk klāt datums kas ir formātā (piem) 14.08.2015
es vēlos atlasīt ierakstus no līdz datuma

 
mēģināju šādi
 
SELECT * FROM mani_ieraksti 
WHERE datums >= '14.08.2015'
AND datums <= '15.08.2015'
 
rezūltātā izmet ierakstu arī no 07 mēneša, mēģināts bija arī ar 'between' , tas pats...
 
Paldies par palīdzību jau iepriekš!
Link to comment
Share on other sites

Nu vari pamēģināt ar STR_TO_DATE()

https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

 

Manuprāt šim vajadzētu strādāt

SELECT * FROM mani_ieraksti 
WHERE STR_TO_DATE(datums, '%d.%m.%Y') BETWEEN STR_TO_DATE("14.08.2015", '%d.%m.%Y') AND STR_TO_DATE("15.08.2015", '%d.%m.%Y')

Taču skaties cik ātri tas izpildās.

 

Pareizāk gan būtu tomēr, lai datums ir "date" vai "datetime" lauka tips. No pieredzes saku, ja ļausi saglabāt nestandartizētus datuma formātus gaidi pamatīgas problēmas ar galvassāpēm vēlāk.

 

Savukārt par to kā pārkonvertēt:

Izveido jaunu datuma laiku ar "date/datetime" tipu (var arī būt timestamp, bet es pēc iespējas cenšos izvairīties) piemēram "temp_datums".

Tad ar MySQL pieprasījumu pārkonvertē

UPDATE mani_ieraksti SET temp_datums = STR_TO_DATE(datums, '%d.%m.%Y');

Ja visi dati korekti pārnesās uz jauno data tipu, dzēs ārā veco "datums" colonu un nomaini "temp_datums" uz "datums".

Protams neaizmirsti, ka tagad datubāzē datums jāsaglabā jaunā formātā "Y-m-d" (vai "Y-m-d H:i:s"), tāpēc applikācijas kodā, kurš glabā ierakstus veic attiecīgas izmaiņas.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...