Det ville nok være bedre at arbejde med datatypen DATETIME i stedet for at gemme en dato som en varchar. På den måde vil du ikke rende ind i problemer med formatet. Hvis du vil selecte datoen ud i et bestemt format, kan du kigge på CONVERT funktionen. Hvis du gemmer datoer som DATETIME, så får du også flere muligheder for at sortere på datoer, og få info om hvilken dag en given dato er, eller hvilken uge datoen ligger i.
Hvis du er her endnu så læg et svar........ det var substring jeg brugte.....
Hej sjang,
Jeg brugte datatypen DATETIME........og den fejlede også ved at lave substrings, da jeg ændrede variablens parameter til nvarchar kørte det bare perfekt:
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go
ALTER PROCEDURE [dbo].[TestTimeStamp] @ReducedTime AS NVARCHAR(MAX) --Tidsrum fra
AS BEGIN
SELECT fProjectSkuTimeStamp
FROM tProjectSku
WHERE fProjectSkuTimeStamp >= SUBSTRING(@ReducedTime,7,4)+'-'+SUBSTRING(@ReducedTime,4,2)+'-'+SUBSTRING(@ReducedTime,1,2)
Jeg glemmer det hver gang........men tak for hjælpen :-)
Og ja vi er fuldstændig enige.........det burde ikke være nødvendigt.......Jeg har ikke ét eneste sted læst (og jeg har været MANGE steder) at man skulle bruge nvarchar...tværtimod er der blevet skrevet, man SKAL bruge datetime formatet..... Men det virker bare ikke når jeg har datetime format........kun når jeg bruger nvarchar..... så for mig er det stadig et mysterium
Jeg mener VARCHAR i stedet for NVARCHAR. Det du putter ind er en streng, ikke en DATETIME. Strengen repræsenterer selvfølgelig værdien i en DATETIME, men det er noget andet.
Ja nu putter jeg en streng ind......Da jeg puttede et datetime format ind, var det jeg fik fejlen......
Efter at have ændret det til en streng, kan jeg bytte rundt på rækkefølge mm uden fejl......
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.