Toon posts:

Access query omzetten naar SQL Server

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik maakte gebruik van de volgende query om data uit een Access database te halen:

SQL ="SELECTdbo_event.event_id, " & _
"dbo_event.eventtype_id, " & _
"dbo_event.fromdate, " & _
"dbo_event.todate, " & _
"dbo_event.description " & _
"FROMdbo_event " & _
"WHERE(CDate(DatePart('d',Now()) & '-' & DatePart('m', Now())) >= CDate(DatePart('d',DateAdd('d', -7, [fromdate])) & '-' & DatePart('m',DateAdd('d', -7, [fromdate])))) " & _
"And(CDate(DatePart('d',Now()) & '-' & DatePart('m',Now())) < CDate(DatePart('d',[todate]) & '-' & DatePart('m',[todate]))) " & _
"ORDER BY CDate(DatePart('m',[fromdate]) & '/' & DatePart('d',[fromdate])) ASC;"

Uit een database worden de events voor de komende week gehaald. Nu hebben we besloten om over te stappen naar een SQL Server database. Maar nu mag ik in de Query geen CDate, DatePart, DataAdd en Now() meer gebruiken. Hoe kan ik deze query toch omzetten om hem voor een SQL Server database te kunnen gebruiken ?

Verwijderd

SQL server ondersteunt zijn eigen functies om hetzelfde te krijgen, dit is o.a. Month() Day(). Verder heeft SQL Server 7 een andere manier van aanroepen van data. Het beste kun je data aanroepen als string.

Ik heb eens iemand geholpen die een week lang bezig was met een date probleem met SQL Server 7, en wat bleek hij deed

WHERE MyDate = 11/5/2000

Wat hij niet doorhad was dat hij in dit statement 11:5:2000 deed. :P

  • jochemd
  • Registratie: November 2000
  • Laatst online: 31-08 19:19
Volgens mij is het voornamelijk een kwestie van dood hout kappen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
SELECT
   dbo_event.event_id,
   dbo_event.eventtype_id, 
   dbo_event.fromdate,
   dbo_event.todate,
   dbo_event.description
FROM
   dbo_event
WHERE
    Now() >= fromdate
   And Now() < DateAdd('d', 7, todate)
ORDER BY fromdate

Deze SQL doet niet precies het zelfde als de SQL die jij gaf, maar haalt wel alle events van de komende week op. Die van jou haalde namelijk ook alle events van volgend jaar in die week op, en ik begreep uit de omschrijving dat dat niet de bedoeling was.

Verwijderd

Topicstarter
Dat is het hem net, Now() werkt niet bij SQL Server....

Ik heb nu:
code:
1
2
3
4
SELECT *
FROM dbo_event
WHERE DateAdd("d",7,(Convert(nvarchar (11), Getdate(),1))) > Convert(nvarchar (11), fromdate,1)
AND Convert(nvarchar (11), Getdate(),1) <= Convert(nvarchar (11), todate,1)

en het werkt, alleen als het einde van de maand in zicht komt, werkt het weer niet. Als ik nu de zaak ophaal (19-26 dec) werkt het. Maar als ik de periode naar 20 dagen instel, dan moet dus alles tussen 19 dec en 7 jan. opgehaald worden. En dat werkt dus niet.
Iemand ???