21. august 2008 - 08:36
Der er
9 kommentarer og 1 løsning
Konvertere datoer
Hej Hvordan konverterer jeg en dato til en streng i dette format: MM/dd/yyyy HH:mm:ss Z ? Denne select convert(varchar,getdate(),109) f.eks.: aug 21 2008 8:33:49:190AM og jeg vil gerne have aug bytte ud med 08 :-)
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
21. august 2008 - 15:17
#2
Hvorfor ikke hente datoen og saa lave formateringen i din applikation ?
21. august 2008 - 15:50
#3
Jeg slq'er op i mod et eksternt system som kræver datoen i et helt bestemt format. Jeg har sådan set ingen applikation til det, men sender sql queries afsted.
21. august 2008 - 16:57
#4
Du kan lave en user defined function til det: CREATE FUNCTION DateConverter (@date datetime) RETURNS varchar(21) AS BEGIN DECLARE @return varchar(21) SET @return = RIGHT('0' + CONVERT(varchar(2), DATEPART(mm, @date)), 2) + '/' + RIGHT('0' + CONVERT(varchar(2), DATEPART(dd, @date)), 2) + '/' + CONVERT(varchar(4), DATEPART(yyyy, @date)) + ' ' + RIGHT('0' + CONVERT(varchar(2), DATEPART(hh, @date)), 2) + ':' + RIGHT('0' + CONVERT(varchar(2), DATEPART(n, @date)), 2) + ':' + RIGHT('0' + CONVERT(varchar(2), DATEPART(ss, @date)), 2) + ' Z' RETURN @return END Kaldes med f.eks. SELECT dbo.DateConverter(datecolumn) FROM tblTablename
24. august 2008 - 03:09
#5
Det er et af de tilfælde hvor jeg mener at en CLR UDF er langt bedre. (forudsætter naturligvis at man er på 2005 eller 2008)
24. august 2008 - 03:10
#6
using System; using System.Data.Sql; using System.Data.SqlTypes; using System.Data.SqlClient; using Microsoft.SqlServer.Server; namespace E { public class DateTimeUtil { [SqlFunction] public static SqlString DateTimeFormat(DateTime dt, string fmt) { return dt.ToString(fmt); } } }
24. august 2008 - 03:10
#7
1> SELECT DBO.DATETIMEFORMAT(GETDATE(), 'MM/dd/yy HH:mm') 2> GO -------------------------------------------------- 08-23-08 21:08 (1 row affected) 1> SELECT DBO.DATETIMEFORMAT(GETDATE(), 'dd-MMM-yyyy HH:mm') 2> GO -------------------------------------------------- 23-aug-2008 21:08 (1 row affected) 1> SELECT DBO.DATETIMEFORMAT(GETDATE(), 'MM/dd/yyyy HH:mm:ss zzz') 2> GO -------------------------------------------------- 08-23-2008 21:08:24 -04:00 (1 row affected)
25. oktober 2008 - 23:16
#8
hulla ?
04. november 2008 - 20:23
#9
Hej arne du ledte mig på sporet, så du får pointene,..
04. november 2008 - 20:38
#10
OK men ldanielsens løsning virker vel også
Computerworld tilbyder specialiserede kurser i database-management