Avatar billede flashit Nybegynder
05. april 2006 - 15:09 Der er 10 kommentarer og
1 løsning

getdate expression style

Hej E.

Jeg har følgende:
convert(varchar(10),getdate(),105)

Denne retunere:
05-04-2006. (dd-mm-yyyy)

Men jeg vil gerne have tiden med. Altås dette format (dd-mm-yyyy hh:mm:ss(24H)
Er her en som kender til expression style som kan det?
Avatar billede the_party_dog Nybegynder
05. april 2006 - 15:14 #1
Hvis du slår convert og cast op i Books Online, vil du se de forskellige styles der er muligt. En som match'er din 100% findes ikke, men du kan jo samle den ud af 2 styles, som ligges sammen til en string. Men så mister du vist muligheden for at sorter på den kolonne.

SELECT CONVERT(VARCHAR(10), GETDATE(), 105) +' '+  CONVERT(VARCHAR(10), GETDATE(), 108)
Avatar billede flashit Nybegynder
05. april 2006 - 15:26 #2
Jeg har prøvt
convert(varchar(10),getdate(),1)
convert(varchar(10),getdate(),2)
convert(varchar(10),getdate(),3)
osv.

og der er bare ikke lige en lækker en.

Så der er helt perfekt TAK :-)
Lægger du ikke lige et svar
Avatar billede the_party_dog Nybegynder
05. april 2006 - 15:29 #3
Det kommer lige her.

Hvis du trykker F1 inde i din Query Analyser / Enterprise Manager, vil du få Books Online frem. Her søger du bare efter "Convert". Hvis du kommer ind på det rigtige, vil du i bunden se de mest anvendte styles. Måske du kan leve med en af de andre der. Så slipper du for at prøve dig frem næste gang. :-)
Avatar billede flashit Nybegynder
05. april 2006 - 15:30 #4
hvad siger du til en til?
Avatar billede the_party_dog Nybegynder
05. april 2006 - 15:32 #5
En til af hvad?

Spørgsmål? :-)
Avatar billede flashit Nybegynder
05. april 2006 - 15:51 #6
yeps ;-)


Hvordan søger man så med det??

select top 20 * from tbl
where Created >= (CONVERT(VARCHAR(10), GETDATE(), 105) +' '+  CONVERT(VARCHAR(10), GETDATE(), 108)) - 7 dage
Avatar billede the_party_dog Nybegynder
05. april 2006 - 15:57 #7
Created, er det en datetime kolonne?

Du skal ikke begynde at tænke for meget i "visnings" resultater. Det er for dig er dd-mm-yyy hh:mm:ss, er slet ikke det samme for serveren. Den gemmer det som noget helt andet. Så det du vil, er at søge efter alt det som er 1 uge gammelt.

SELECT TOP 20 *
FROM tbl
WHERE DATEDIFF(dd, Created, GETDATE()) <= 7
Avatar billede flashit Nybegynder
05. april 2006 - 15:57 #8
Jeg har prøvet dette:
select top 20 * from tbl
where Created >= DATEADD(day, -7, (CONVERT(VARCHAR(10), GETDATE(), 105) +' '+  CONVERT(VARCHAR(10), GETDATE(), 108)))

Er det ikke rigtigt?
Avatar billede flashit Nybegynder
05. april 2006 - 16:00 #9
doh..........

Suværent, jeg opretter lige et spg til dig :-)

Mange TAK
Avatar billede the_party_dog Nybegynder
05. april 2006 - 16:02 #10
Desværre... Du hænger dig for meget i hvad du "ser". Du skal slet ikke tænke sådan, for serveren er en dato et komma tal.(Hvis jeg husker helt rigtig, du må ikke hænge mig op på det. Nogen som er klogere end mig, fortæl os lige hvordan det er gemt).

Så når du skal søge på en dato eller teste det mod noget andet, skal du ikke formatere det, for at få det til at virke. Du skal kun formatere når du vil have VIST dit data og det vil du kun i din applikation og ikke i din sql query. Med mindre du selvfølgelig vil lave noget med en string sammenling, men det tager vi en anden dag :-)
Avatar billede flashit Nybegynder
05. april 2006 - 16:03 #11
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester