/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
MySQL timestamp format
Fra : Joe Doe


Dato : 06-06-04 19:44

Det er ikke så lang tid siden jeg har opgraderet til MySQL v4.1 og jeg har
lige opdaget, at timestamp formatet er ændret. Tidligere hed det
"yyyymmddHHMMSS" mens det nu hedder "yyyy-mm-dd HH:MM:SS". Dvs. tidligere
var det et heltal mens det nu er en streng.

Jeg kan ikke helt se det logiske i dette, da det tidligere var langt nemmere
at søge i tidsintervaller - f.eks. "SELECT blaaa WHERE
timestamp>20030106000000 and timestamp<20040304120000" - nu skal man istedet
gå en omvej for at få det samme reultat. Endvidere synes jeg da også, at det
må være langsommere at søge på (en streng) fremfor tal?

Er den eneste måde at omgå dette på ved at oprette et nyt database felt og
så manuelt indsætte datoen som et heltal (og undgå timestamp funktionen i
MySQL)?



 
 
Troels Arvin (06-06-2004)
Kommentar
Fra : Troels Arvin


Dato : 06-06-04 21:02

On Sun, 06 Jun 2004 20:43:53 +0200, Joe Doe wrote:

> Jeg kan ikke helt se det logiske i dette, da det tidligere var langt
> nemmere at søge i tidsintervaller - f.eks. "SELECT blaaa WHERE
> timestamp>20030106000000 and timestamp<20040304120000"

Et sådant query vil stadig fungere. Der er flere forskellige måder at
angive tidsværdier, når man vil kommunikere sådanne til MySQL - se
MySQLs manual.

> Endvidere synes jeg da også, at det må være langsommere at søge på
> (en streng) fremfor tal?

Hvordan en værdi præsenteres eller indtastes behøver ikke at have noget
at gøre med, hvordan DBMSet gemmer værdien. Ud fra manualen at dømme,
gemmer MySQL internt TIMESTAMP-værdier som heltal (unix timestamps).

> Er den eneste måde at omgå dette på ved at oprette et nyt database
> felt og så manuelt indsætte datoen som et heltal (og undgå timestamp
> funktionen i MySQL)?

Hvis databasen har nogle relevante typer til dato/tid værdier, så er det
smart at benytte en af disse, bl.a. af hensyn til korrekthed. (Mht.
dato/tid-værdier, så er lige netop MySQL ikke særlig god til at sikre
korrekthed.)

Hvis du er interesseret i datoer (ikke tidspunkter), hvorfor så ikke
benytte MySQL's DATE type?

--
Greetings from Troels Arvin, Copenhagen, Denmark


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste