дата, час, timestamp

17 отговора 287 прегледа
#1

дата, час, timestamp

ситуацията е следната, в база данни си вкарвам дата и часа с now(), колоната в базата данни е timestamp(14) и съдържанието на дадена клетка изглежда така: 20041011192752
По какъв начин бих могъл да си форматирам и отпечатам датата и часът.
В конкретният случай ми трябва: ден.месец.година, час:минута:секунда
и една забележка: Трябва да мога да сменям и часовата зона, т.е за конкретната дата да мога да добавя +2 ч.

Отговор
в отговор на Grisha #2

Re: дата, час, timestamp

Става излишно сложно. Използвай възможностите на базата данни и тип поле DATETIME.

---
Priatelite.net
Uslugite.net
Отговор
в отговор на voyager #3

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, никъде не беше уточнена базата каква е.

Успех.

Редактирано от mr.vain на

Отговор
в отговор на voyager #4

НекоИ сАУбражения

Да се използва DATETIME вместо TIMESTAMP само защото не знаеш как да си форматираш датата ???
Сега няма да обяснявам разликата между двете полета, защото не сме в клуб БД, пък и не е ясно какво точно се иска

Отговор
в отговор на mr.vain #5

Re: дата, час, timestamp

Ми на мене ми е сложно да пиша разни проценти и точки, сигурно съм тъп. Има далеч по-лесен вариант ако се използва DATETIME и INTERVAL.

---
Priatelite.net
Uslugite.net
Отговор
в отговор на lazo #6

Re: НекоИ сАУбражения

Не защото не знаеш, а защото е по-добре. И няма нужда да обясняваш разликата между полетата, знаем я много добре. Дискутирал съм хиляди пъти предимствата на ДАТЕТИМЕ, нямам намерение да дъвча отново стари неща.
На същата логика мога да кажа "да ползваш ТИМЕСТАМП само защото не знаеш как се вкарва текуща дата?"

---
Priatelite.net
Uslugite.net
Отговор
в отговор на voyager #7

Re: дата, час, timestamp

Хей, хей, никой не казва че си тъп. Просто човека има вече изградена таблица и търси решение на базата на това което е създал. Иначе решения и подходи има много, включително и с PHP код, чрез substr() примерно, но ние тук говорим за конкретния случай, нали?

Не се засягай.

Отговор
в отговор на mr.vain #8

Re: дата, час, timestamp

Не се засягам бе
Просто наистина не обичам да гледам проценти, точки и други неазбучни знаци, когато нещата могат да станат по-лесно.
А иначе ако вече е създадена таблицата и се използва на доволно много места в приложението с ТИМЕСТАМП, явно е по-добре да си остане така.

---
Priatelite.net
Uslugite.net
Отговор
в отговор на voyager #9

OFFTOPIC

Да кажеш че ДАТЕТИМЕ е по-добро по-принцип от ТИМЕСТАМП е малко налудничаво. Има два вида полета, защото има различни ситуации. Никой не се съмнява в безкрайните ВИ познания в областта, доказани хиляди пъти в безчет дискусии, но само ми кажи - как точно разбра от този пост:
ситуацията е следната, в база данни си вкарвам дата и часа с now(), колоната в базата данни е timestamp(14) и съдържанието на дадена клетка изглежда така: 20041011192752
кой тип е по-добре да се използва !?
А, да, аз поне знам как се използват %d %m %y

Отговор
в отговор на lazo #10

Re: OFFTOPIC

Я да ви таковам и двамата.

Нема да се заяждате. И двете си имат предимства и недостъци :-)

Да е жив и здрав MySQL-а че се оправя с тези неща сам ;-))))

lazo - нема да те питам кой ти набиваше в главата, че timestamp е по-добро от datetime
voyager - не си прав в случая.

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Отговор
в отговор на lazo #11

Re: OFFTOPIC

Разбрах го не от това, което ти си дал болд, а от това:
В конкретният случай ми трябва: ден.месец.година, час:минута:секунда
и една забележка: Трябва да мога да сменям и часовата зона, т.е за конкретната дата да мога да добавя +2 ч.


И не говоря, че нещо е по принцип по-добро от друго, а конкретно за случаи като този.

---
Priatelite.net
Uslugite.net
Отговор
в отговор на ro6avia #12

Re: OFFTOPIC

lazo - нема да те питам кой ти набиваше в главата, че timestamp е по-добро от datetime

До voyager - не искам да се заяждаме наистина, и двамата пишем редовно, трябва да се уважаваме

Отговор
в отговор на lazo #13

Re: OFFTOPIC

До voyager - не искам да се заяждаме наистина, и двамата пишем редовно, трябва да се уважаваме

Аз също, затова не се заяждам, а споря

---
Priatelite.net
Uslugite.net
Отговор
в отговор на mr.vain #14

Re: дата, час, timestamp

Това с DATE_FORMAT е хубаво, ама кажи ми как ще го ползвам ако заявката ми е SELECT * FROM table

Отговор
в отговор на Grisha #15

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

Редактирано от ro6avia на

Отговор
в отговор на Grisha #16

Re: дата, час, timestamp

Eeee, ама ставаш нахален. Хем искаш SQL да ти свърши работата, хем те мързи да пишеш.

Има вариант да направиш SELECT *, date_format(date_field....) AS formatted_date, но така във върнатите редове ще имаш два пъти датата - веднъж неформатирана и веднъж форматирана. Ако така те кефи...

Успех.

Отговор
в отговор на mr.vain #17

ЕЕЕЕЕЕЕЕЕЕЕ

ЕЕЕЕЕЕЕЕ
що му каза

аз поне написах хинта с бял текст ;-)))), не че не е същия, май само formated_date съм го написал с 1 Т ;-)

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Отговор
в отговор на ro6avia #18

Re: ЕЕЕЕЕЕЕЕЕЕЕ

Все пак пита човека. Нека бъдем "хора" поне за малко...

Отговор