[SQL] Date conversion...

Pagina: 1
Acties:

  • Mx. Alba
  • Registratie: Augustus 2001
  • Laatst online: 23:29

Mx. Alba

hen/hun/die/diens

Topicstarter
Ik ben op het werk bezig om queries die momenteel vanuit Access gebruikt worden te automatiseren in een tool genaamd Forest & Trees (F&T), zodat men gewoon op een knopje kan drukken en de gewenste statistieken komen automatisch uitrollen in XLS, JPG of HTML, comme on veut.

Nu loop ik alleen tegen het volgende probleem aan:

De database werkt intern met Unix time (seconden tellen vanaf 01/01/1970).
F&T werkt intern met US time (MM/DD/YYYY hh:mm:ss)
De eindgebruikers willen statistieken met een Europese datum (DD/MM/YYYY)

Goed, nu heb ik in F&T al functies geschreven om enkele van die conversies te doen (Ame -> Eur, Eur -> Ame, Ame -> datestamp YYYYMMDD)

Die F&T functies zijn heel nuttig in de user interface, maar het probleem is nu dat ik de data uit de database haal met SQL queries, waarin ik die F&T functies niet kan gebruiken. De geëxporteerde data heeft dus nog steeds een Amerikaans datumformaat MM/DD/YYYY.

Momenteel gebruik ik dit soort kabbalistische formule in mijn queries:

convert(varchar(10),dateadd(s,CR.open_date +(&Time_Zone&),'01/01/1970'),101) 'Date d''Ouverture',

Wat die dus doet, is de Unixtijd uit de database optellen bij '01/01/1970' en een adjustment voor je timezone. Je krijgt dan het formaat MM/DD/YYYY hh:mm:ss. Om dan de tijd eraf te knippen converteer ik het in een string van 10 karakters.

Ik heb deze queries van de vorige statistiekenboer overgenomen, en ze lijken me een beetje dirty. Bovendien is de output MM/DD/YYYY terwijl ik eigenlijk DD/MM/YYYY wil hebben.

Any ideas?

Het is alleen een echte hetze als het uit Hetzerath komt, anders is het gewoon sprankelende ophef.


Verwijderd

Hier zijn gewoon standaard functies voor in mySQL en neem aan ook in andere.

[edit]oa: de volgende functie in mysql
FROM_UNIXTIME(unix_timestamp) , FROM_UNIXTIME(unix_timestamp,format)

[edit]
Ik lees dat dit in access niet zo leuk werkt :+

[ Voor 55% gewijzigd door Verwijderd op 22-09-2006 10:09 ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ik neem aan dat je MS Access gebruikt? Kan je dan niet de DateDiff functie gebruiken zodat je het verschil tussen je datum en 1/1/1970 kan uitrekenen?

En ik snap eigenlijk je tweede vraag niet (het deel met being dirty :P)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Tja, ik zou geen andere oplossing weten dan je 'dirty' suggestie. Om het in het europees formaat te krijgen moet je de 101 op het einde door 105 veranderen.

edit: ik zie nu 'Access', maar de functies die je gebruikt lijken me MS SQL en geen Access?

[ Voor 23% gewijzigd door P_de_B op 22-09-2006 10:07 ]

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Mx. Alba
  • Registratie: Augustus 2001
  • Laatst online: 23:29

Mx. Alba

hen/hun/die/diens

Topicstarter
P_de_B schreef op vrijdag 22 september 2006 @ 10:06:
Tja, ik zou geen andere oplossing weten dan je 'dirty' suggestie. Om het in het europees formaat te krijgen moet je de 101 op het einde door 105 veranderen.
_o_

Ik moet overigens 104 hebben maar je hebt me hiermee op het goede spoor gezet. *O*
edit: ik zie nu 'Access', maar de functies die je gebruikt lijken me MS SQL en geen Access?
Het origineel is in Access, maar F&T gebruikt MS SQL. Ik moet dus o.a. Access queries ombouwen naar MS SQL queries.

Het is alleen een echte hetze als het uit Hetzerath komt, anders is het gewoon sprankelende ophef.