» »

[PHP]Timestamp in mysql

[PHP]Timestamp in mysql

roli ::

Torej imam majček problemček z PHPjem in mysqlom - točneje z timestampom.

Torej imam neko polje v podatkovni bazi imenovano datum_izida, ki pa je v varchar formatu - na začetku je bilo to polje namenjeno samo prikazu. Vendar pa je problem, ker rabim to polje pri neki kalkulaciji z datumom. Jaz datum shranjujem v stilu 2008.9.16. Torej zanima me ali je možno v mysql timestamp shranjevati datum takega tipa? Ker želim obdržati način kako se datum shranjuje v bazo (PHP pobere vrednosti iz treh drpodown listov ter to shrani v eno vrednost ter zapiše v bazo).

Na koncu hočem pridobiti podatke na tale način:
$datumi = mysql_query("SELECT * FROM igre WHERE prikazi ='on' AND datum BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 MONTH)") or die(mysql_error());
http://www.r00li.com

Ziga Dolhar ::

... in zakaj datum shranjuješ v VARCHAR???

Ti želiš, da se tvoja koda (tip shranjenih podatkov) prilagaja zunanjemu prikazu. Fejst narobe. Prikaz lahko VEDNO prilagodiš s precej obsežnim naborom funkcij, ki jih pozna MySQL.

MySQL :: MySQL 5.0 Reference Manual :: 11.6 Date and Time Functions
https://dolhar.si/

roli ::

To vem!

Po pravici povedano ne vem zakaj sem takrat imel VARCHAR. Ker podatkov ni nič lahko sedaj še vedno pretvorim polje v tip DATE ali TIMESTAMP. Problem je samo, ker nočem urejati kode, ki shranjuje datum.
http://www.r00li.com

DavidJ ::

Tocno tako, kot pravi Ziga. Zato najboljse, da v tabelo dodas nov atribut tipa date in bodisi spises php skripto, ki ti ta atribut nafila iz zdajsnjega datuma, bodisi spises malo kompleksnesji SQL stavek, ki opravi isto delo. Seveda brez parsanja ne bo slo.
"Do, or do not. There is no 'try'. "
- Yoda ('The Empire Strikes Back')

Ziga Dolhar ::

Čemu ne?:)
https://dolhar.si/

ERGY ::

Sej jaz ne znam kaj dosti pa vseeno. A ni NOW() funkcija ki vrne trenutni datum z uro ?

mlavta1 ::

Ker je bila ravno o tem debata. Kaj priporočate, timestamp ali navaden date...?

Baja ::

tudi mene zanima kaj uporabljate, priporočate.

jaz vedno uporabljam timestamp v int poljih.

Včasih sem še kaj eksperimentiral z ostalimi tipi, pa sem vedno naletel na kake čudne probleme.

mogoče je smiselno uporabiti date polja, če imaš dosti opraviti z kakimi datumskimi kalkulacijami.

bo treba preštudirati tole zadevo.

680x0 ::

@Rolihandrej:
Ti kar mirno spremeni tip vrednosti iz VARCHAR v DATE ali DATETIME (če potrebuješ še čas) in skripta bo normalno vstavljala še naprej. Format "2008.9.16" je eden izmed teh, ki jih mySQL mirno prebavi.
As a string in either 'YYYY-MM-DD' or 'YY-MM-DD' format. A “relaxed” syntax is allowed here, too. For example, '98-12-31', '98.12.31', '98/12/31', and '98@12@31' are equivalent.


@Baja:
Lepo se je navadit uporabljat DATETIME ali TIMESTAMP za shranjevanje datuma, še posebej, če kaj dosti kalkuliraš z datumi - funkcije v mySQL lepo operirajo s prestopnimi leti in podobnimi nadlogami, ki jih šlampasti programerji včasih pozabijo (znana +3600 ko želijo dodati 1 uro npr.). Če v sami skripti zaradi česarkoli potrebuješ unix timestamp, ga še vedno lahko dobiš iz DATETIME/TIMESTAMP polja če selectaš s funkcijo UNIX_TIMESTAMP(stolpec).

Zgodovina sprememb…

  • spremenil: 680x0 ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Potrebujem MySQL ukaz

Oddelek: Programiranje
122879 (2487) zvmk
»

[SQL in PHP] Preprost PHP koledarček, ki je povezan z MySQL bazo

Oddelek: Programiranje
91921 (1683) R33D3M33R
»

SQL CNVERT; konvertanje datuma

Oddelek: Programiranje
141462 (1268) frudi
»

SQL Server in datum nagajata

Oddelek: Programiranje
91881 (1744) dudi
»

Kako zaceti z PHP in MySQL

Oddelek: Programiranje
222428 (2132) simon

Več podobnih tem