/ 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
Dato-problem, VBA vs MS-SQL
Fra : Morten Snedker


Dato : 27-12-04 12:46

En variabel i VB sættes således:

StartUge = DatePart("ww", rs!Dato, vbMonday, vbUseSystem)

Den 1. januar 2005 ligger i uge 53, hvorved min variabel korrekt får
værdien 53.

Til at udvælge posterne har jeg:
rptSQL = "Select * From Book_Tmp Where OrdreID=" & OrdreID & _
" And Datepart(week,Dato)=" & StartUge & " And
StationID=" & Reports!rptOrdre_Week.OpenArgs & " Order By Dato"

Men...

BOL siger om Datepart (SQL):

January 1 of any year defines the starting number for the week
datepart, for example: DATEPART(wk, 'Jan 1, xxxx') = 1, where xxxx is
any year.

Det vil sige, at MS-SQL-serveren vil ha' dem til at ligge i uge 1
2005, hvor de retteligt ligger i uge 53 2004.

Hvordan løses den?


xpost: dk.edb.database.ms-access,dk.edb.database
fut: dk.edb.database.ms-access

 
 
Jens Gyldenkærne Cla~ (27-12-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 27-12-04 20:04

Morten Snedker skrev:

> Det vil sige, at MS-SQL-serveren vil ha' dem til at ligge i
> uge 1 2005, hvor de retteligt ligger i uge 53 2004.

Hvor bøvlet - der er åbenbart ingen måde at fortælle MSSQL at man
gerne vil bruge "firstfourdays"-metoden.

Prøv at se om tråden her: <http://www.dbforums.com/t952797.html> -
der er nogle kommentarer om emnet.

NB: Din fut var sat forkert.
X-Post über 2 Gruppen, FollowUp-To dk.edb.database
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Peter Lykkegaard (27-12-2004)
Kommentar
Fra : Peter Lykkegaard


Dato : 27-12-04 20:43

"Jens Gyldenkærne Clausen" wrote

> Hvor bøvlet - der er åbenbart ingen måde at fortælle MSSQL at man
> gerne vil bruge "firstfourdays"-metoden.
>
Ja jeg blev også lidt overrasket
Btw hvis du bruger mssql en del så bookmark det site jeg fandt
http://www.datutorials.com/sqlserver/

Det er første gang jeg er faldet over en reference der giver BOL baghjul -
omg

- Peter



Peter Lykkegaard (27-12-2004)
Kommentar
Fra : Peter Lykkegaard


Dato : 27-12-04 20:36

"Morten Snedker" wrote

> En variabel i VB sættes således:
>
> StartUge = DatePart("ww", rs!Dato, vbMonday, vbUseSystem)
>
> Den 1. januar 2005 ligger i uge 53, hvorved min variabel korrekt får
> værdien 53.
>
> Til at udvælge posterne har jeg:
> rptSQL = "Select * From Book_Tmp Where OrdreID=" & OrdreID & _
> " And Datepart(week,Dato)=" & StartUge & " And
> StationID=" & Reports!rptOrdre_Week.OpenArgs & " Order By Dato"
>
> Men...
>
Tjahh det må du sgu nok sige, den kunne jeg ikke lige klare
Det er jo klaks i gode gamle Access

Men Google to the rescue
http://www.datutorials.com/sqlserver/sqlserver_ref_ts_create_7r1l.php

Og det spiller max

Set DateFirst 1
declare @date DateTime
Set @Date = dateadd(d, 5, getdate())

Select @Date, DatePart(weekday, @date), dbo.ISOweek(@Date) AS 'ISO Week'

ISO Week
-----------
53

Opfølgning er sat til dk.edb.database

Godt Nytår - Peter



Morten Snedker (28-12-2004)
Kommentar
Fra : Morten Snedker


Dato : 28-12-04 12:31

On Mon, 27 Dec 2004 20:36:00 +0100, "Peter Lykkegaard"
<polonline@hotmail.com> wrote:


>ISO Week

Jeg fandt nu på MSDN i den mellemliggende tid, men tak for alle Jeres
bestræbelser alligevel!

Og ja, det spiller max..


/Snedker

Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408195
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste