дата, час, timestamp
17 отговора
287 прегледа
дата, час, timestamp
ситуацията е следната, в база данни си вкарвам дата и часа с now(), колоната в базата данни е timestamp(14) и съдържанието на дадена клетка изглежда така: 20041011192752
По какъв начин бих могъл да си форматирам и отпечатам датата и часът.
В конкретният случай ми трябва: ден.месец.година, час:минута:секунда
и една забележка: Трябва да мога да сменям и часовата зона, т.е за конкретната дата да мога да добавя +2 ч.
По какъв начин бих могъл да си форматирам и отпечатам датата и часът.
В конкретният случай ми трябва: ден.месец.година, час:минута:секунда
и една забележка: Трябва да мога да сменям и часовата зона, т.е за конкретната дата да мога да добавя +2 ч.
Re: дата, час, timestamp
Става излишно сложно. Използвай възможностите на базата данни и тип поле DATETIME.
---
Priatelite.net
Uslugite.net
---
Priatelite.net
Uslugite.net
Re: дата, час, timestamp
Не виждам нищо сложно - просто да използва DATE_FORMAT() & DATE_ADD() функциите в sql заявките си:
SELECT field1, field2, DATE_FORMAT(date_field, "%d.%m.%Y, %H:%i:%s") FROM your_table;
UPDATE your_table SET date_field = DATE_ADD(date_field, INTERVAL 2 HOUR);
За втората заявка не съм сигурен дали няма да обърне датата на Y-m-d H:i:s, пиша наизуст. А и това е при MySQL, никъде не беше уточнена базата каква е.
Успех.
SELECT field1, field2, DATE_FORMAT(date_field, "%d.%m.%Y, %H:%i:%s") FROM your_table;
UPDATE your_table SET date_field = DATE_ADD(date_field, INTERVAL 2 HOUR);
За втората заявка не съм сигурен дали няма да обърне датата на Y-m-d H:i:s, пиша наизуст. А и това е при MySQL, никъде не беше уточнена базата каква е.
Успех.
Редактирано от mr.vain на
НекоИ сАУбражения
Да се използва DATETIME вместо TIMESTAMP само защото не знаеш как да си форматираш датата ???
Сега няма да обяснявам разликата между двете полета, защото не сме в клуб БД, пък и не е ясно какво точно се иска
Сега няма да обяснявам разликата между двете полета, защото не сме в клуб БД, пък и не е ясно какво точно се иска
Re: дата, час, timestamp
Ми на мене ми е сложно да пиша разни проценти и точки, сигурно съм тъп. Има далеч по-лесен вариант ако се използва DATETIME и INTERVAL.
---
Priatelite.net
Uslugite.net
---
Priatelite.net
Uslugite.net
Re: НекоИ сАУбражения
Не защото не знаеш, а защото е по-добре. И няма нужда да обясняваш разликата между полетата, знаем я много добре. Дискутирал съм хиляди пъти предимствата на ДАТЕТИМЕ, нямам намерение да дъвча отново стари неща.
На същата логика мога да кажа "да ползваш ТИМЕСТАМП само защото не знаеш как се вкарва текуща дата?"
---
Priatelite.net
Uslugite.net
На същата логика мога да кажа "да ползваш ТИМЕСТАМП само защото не знаеш как се вкарва текуща дата?"
---
Priatelite.net
Uslugite.net
Re: дата, час, timestamp
Хей, хей, никой не казва че си тъп. Просто човека има вече изградена таблица и търси решение на базата на това което е създал. Иначе решения и подходи има много, включително и с PHP код, чрез substr() примерно, но ние тук говорим за конкретния случай, нали?
Не се засягай.
Не се засягай.
Re: дата, час, timestamp
Не се засягам бе
Просто наистина не обичам да гледам проценти, точки и други неазбучни знаци, когато нещата могат да станат по-лесно.
А иначе ако вече е създадена таблицата и се използва на доволно много места в приложението с ТИМЕСТАМП, явно е по-добре да си остане така.
---
Priatelite.net
Uslugite.net
Просто наистина не обичам да гледам проценти, точки и други неазбучни знаци, когато нещата могат да станат по-лесно.
А иначе ако вече е създадена таблицата и се използва на доволно много места в приложението с ТИМЕСТАМП, явно е по-добре да си остане така.
---
Priatelite.net
Uslugite.net
OFFTOPIC
Да кажеш че ДАТЕТИМЕ е по-добро по-принцип от ТИМЕСТАМП е малко налудничаво. Има два вида полета, защото има различни ситуации. Никой не се съмнява в безкрайните ВИ познания в областта, доказани хиляди пъти в безчет дискусии, но само ми кажи - как точно разбра от този пост:
ситуацията е следната, в база данни си вкарвам дата и часа с now(), колоната в базата данни е timestamp(14) и съдържанието на дадена клетка изглежда така: 20041011192752
кой тип е по-добре да се използва !?
А, да, аз поне знам как се използват %d %m %y
ситуацията е следната, в база данни си вкарвам дата и часа с now(), колоната в базата данни е timestamp(14) и съдържанието на дадена клетка изглежда така: 20041011192752
кой тип е по-добре да се използва !?
А, да, аз поне знам как се използват %d %m %y
Re: OFFTOPIC
Я да ви таковам и двамата.
Нема да се заяждате. И двете си имат предимства и недостъци :-)
Да е жив и здрав MySQL-а че се оправя с тези неща сам ;-))))
lazo - нема да те питам кой ти набиваше в главата, че timestamp е по-добро от datetime
voyager - не си прав в случая.
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Нема да се заяждате. И двете си имат предимства и недостъци :-)
Да е жив и здрав MySQL-а че се оправя с тези неща сам ;-))))
lazo - нема да те питам кой ти набиваше в главата, че timestamp е по-добро от datetime
voyager - не си прав в случая.
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Re: OFFTOPIC
Разбрах го не от това, което ти си дал болд, а от това:
В конкретният случай ми трябва: ден.месец.година, час:минута:секунда
и една забележка: Трябва да мога да сменям и часовата зона, т.е за конкретната дата да мога да добавя +2 ч.
И не говоря, че нещо е по принцип по-добро от друго, а конкретно за случаи като този.
---
Priatelite.net
Uslugite.net
В конкретният случай ми трябва: ден.месец.година, час:минута:секунда
и една забележка: Трябва да мога да сменям и часовата зона, т.е за конкретната дата да мога да добавя +2 ч.
И не говоря, че нещо е по принцип по-добро от друго, а конкретно за случаи като този.
---
Priatelite.net
Uslugite.net
Re: OFFTOPIC
lazo - нема да те питам кой ти набиваше в главата, че timestamp е по-добро от datetime


До voyager - не искам да се заяждаме наистина, и двамата пишем редовно, трябва да се уважаваме
До voyager - не искам да се заяждаме наистина, и двамата пишем редовно, трябва да се уважаваме
Re: OFFTOPIC
До voyager - не искам да се заяждаме наистина, и двамата пишем редовно, трябва да се уважаваме
Аз също, затова не се заяждам, а споря
---
Priatelite.net
Uslugite.net
Аз също, затова не се заяждам, а споря
---
Priatelite.net
Uslugite.net
Re: дата, час, timestamp
Това с DATE_FORMAT е хубаво, ама кажи ми как ще го ползвам ако заявката ми е SELECT * FROM table
Re: дата, час, timestamp
Както нееднократно са казвали всички, които разбират от бази данни :
НЕ СЕ ПРЕПОРЪЧВА ИЗПОЛЗВАНЕТО НА SELECT *
но дори тогава можеш да го направиш по N на брой начина !
Преди да ти го напиша, така че да ти работи 1:1 ще ми кажеш ли какво не ти хареса в отговорите които са ти дали е bgdev, че питаш тук ?
[hint]SELECT *, date_format(".....", field) as formated_date[/hint]
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
НЕ СЕ ПРЕПОРЪЧВА ИЗПОЛЗВАНЕТО НА SELECT *
но дори тогава можеш да го направиш по N на брой начина !
Преди да ти го напиша, така че да ти работи 1:1 ще ми кажеш ли какво не ти хареса в отговорите които са ти дали е bgdev, че питаш тук ?
[hint]SELECT *, date_format(".....", field) as formated_date[/hint]
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Редактирано от ro6avia на
Re: дата, час, timestamp
Eeee, ама ставаш нахален. Хем искаш SQL да ти свърши работата, хем те мързи да пишеш.
Има вариант да направиш SELECT *, date_format(date_field....) AS formatted_date, но така във върнатите редове ще имаш два пъти датата - веднъж неформатирана и веднъж форматирана. Ако така те кефи...
Успех.
Има вариант да направиш SELECT *, date_format(date_field....) AS formatted_date, но така във върнатите редове ще имаш два пъти датата - веднъж неформатирана и веднъж форматирана. Ако така те кефи...
Успех.
ЕЕЕЕЕЕЕЕЕЕЕ
ЕЕЕЕЕЕЕЕ
що му каза
аз поне написах хинта с бял текст ;-)))), не че не е същия, май само formated_date съм го написал с 1 Т ;-)
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
що му каза
аз поне написах хинта с бял текст ;-)))), не че не е същия, май само formated_date съм го написал с 1 Т ;-)
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy