[sql] datumveld als dd/mm

Pagina: 1
Acties:
  • 365 views sinds 30-01-2008
  • Reageer

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
Ik ben bezig met het maken van een weergave voor verjaardagen / jubilea en nu stuit ik op een probleem.

Ik kan geen functie vinden waarmee ik de datum op de juiste manier kan weer geven in de sqlstring. De sqlstring ziet er zow uit

code:
1
2
3
4
5
sqlstring = "SELECT ID, voornaam, voorletters, tussenvoegsel, achternaam, geboorte_datum "_
            & "FROM personeel "_
            & "WHERE (??(dd/mm, geboorte_datum) >= '" & eergister & "') "_
            & "AND (??(dd/mm, geboorte_datum) <= '" & overmorgen & "') "_
            & "ORDER BY geboorte_datum ASC;"


Op de plaats waar hier 2 keer ?? staat moet dus iets komen te staan waarmee ik de datum zo kan formatten dat er een dag / maand format uit komt. De eergister/ overmorgen variabele is gevuld met het formaat dd/mm...

Ik heb al gekeken naar de convert functie, in de lijst met formats die microsoft geeft kan ik niet de juiste vinden

Ik heb al gekeken naar de datepart functie, maar hiermee kom ik er ook niet uit

BVD

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
date_format( geboorte_datum, '%d / %m' ), dat is voor mysql, en jij gebruikt?

[ Voor 11% gewijzigd door Gert op 07-01-2003 07:14 ]


  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 07:35
Gaat volgens mij niet op een standaard manier. SQL werkt altijd via het Amerikaanse datumformaat en geeft datums dan ook op MM/DD/YYYY terug. Als je echter met ASP oid werkt en de datum via de browser wordt getoond, dan zal de webserver na uitvoering van de query de output van deze query alsnog omzetten naar het datumformaat, zoals deze op de webserver is ingesteld.

Verwijderd

Je kan DATEPART gebruiken. gebruik bv DATEPART(m, geboorte_datum) om de maanden op te halen en DATEPART(d,geboorte_datum) voor de dag.

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Kijk hier maar eens:
http://www.mysql.com/doc/en/Date_calculations.html
Daar staat in de comments een query voor het ophalen van verjaardagen met een variabele vooruitkijktijd. Effe zoeken dus scheelt een stuk.

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
Gert schreef op 07 januari 2003 @ 07:13:
date_format( geboorte_datum, '%d / %m' ), dat is voor mysql, en jij gebruikt?
|:( Ik gebruik ms sql server en daar werkt de methode zoals jij hem hier beschrijft niet mee...

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • Kawa
  • Registratie: Juni 2001
  • Laatst online: 22:19
Ms Sql gebruikt ook het formaat mm/dd/yyyy

eergisteren en overmorgen moet je dus ook naar dit formaat omzetten

[ Voor 46% gewijzigd door Kawa op 07-01-2003 09:57 . Reden: toevoeging ]


Verwijderd

errmmm. zo moet ie:
code:
1
convert(char(5),geboortedatum,5)


Door er een char(5) van te maken breek je het laatste karakters van de string af. Hierdoor hou je alleen dd-mm over.

ow ja
code:
1
convert(char(5),geboortedatum,3)


is dd/mm in plaats van dd-mm

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
TweakersOnly schreef op 07 januari 2003 @ 07:16:
Gaat volgens mij niet op een standaard manier. SQL werkt altijd via het Amerikaanse datumformaat en geeft datums dan ook op MM/DD/YYYY terug. Als je echter met ASP oid werkt en de datum via de browser wordt getoond, dan zal de webserver na uitvoering van de query de output van deze query alsnog omzetten naar het datumformaat, zoals deze op de webserver is ingesteld.
Ik weet dat sql standaard een bepaalde notatie uitspuugt, maar, ik weet ook dat het mogelijk is met de functies convert en cast de datum op verschillende manieren te formatten. Ik weet echter niet of een van deze twee methoden het format waarop ik de datum wil hebben ondersteund.

Een andere oplossing zou misschien liggen in het samenstellen van een string in sqlserver, ik weet echter niet hoe ik dit op moet lossen.

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
Verwijderd schreef op 07 January 2003 @ 09:57:
errmmm. zo moet ie:
code:
1
convert(char(5),geboortedatum,5)


Door er een char(5) van te maken breek je het laatste karakters van de string af. Hierdoor hou je alleen dd-mm over.

ow ja
code:
1
convert(char(5),geboortedatum,3)


is dd/mm in plaats van dd-mm
Dank je, dat doet het :D _/-\o_

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


Verwijderd

doe dit maar es in je query analyser:

code:
1
2
3
4
5
6
7
8
9
declare @i int
set @i = 1


while @i < 15
begin
    select convert(char(20),getdate(),@i)
    set @i = @i + 1
end

[ Voor 7% gewijzigd door Verwijderd op 07-01-2003 10:03 ]

Pagina: 1