转换SQL DateTime格式

时间:2010-12-02 14:39:25

标签: sql sql-server

如何将DATETIME值(2010-12-02 15:20:17.000)显示为02/12-2010 15:20

6 个答案:

答案 0 :(得分:2)

对于SQL Server:

select stuff(convert(varchar, getdate(), 105), 3, 1, '/') + ' ' + left(convert(varchar, getdate(), 8), 5)

答案 1 :(得分:2)

DateTimeDateTimeDateTime - 它只保存日期和时间,并且没有任何字符串表示。

有关详细信息,请参阅SQL Server联机丛书中的CAST and CONVERT主题 - 它显示了SQL Server支持的所有支持的日期格式。

对于您的源格式(2010-12-02 15:20:17.000),您可以使用样式号。 121

DECLARE @source VARCHAR(50)
SET @source = '2010-12-02 15:20:17.000'

DECLARE @Date DATETIME
SELECT @Date = CONVERT(DATETIME, @source, 121)

SELECT @Date

但你的目标格式有点奇怪......我没有看到任何符合你需求的“开箱即用”风格。您需要使用一些字符串操作代码来获得确切的格式。

答案 2 :(得分:1)

使用MSSQL的内置函数将datetime转换为格式为

的字符串
SELECT CONVERT(VARCHAR(8), GETDATE(), 1) AS [MM/DD/YY] --2/5/12
SELECT CONVERT(VARCHAR(10), GETDATE(), 103) AS [DD/MM/YYYY] --5/2/2012

您需要创建自定义函数才能使用各种格式;

SELECT dbo.ufn_FormatDateTime(GETDATE(),'YYYY-MM-DD HH:mm:SS tt')
--Output : 2012-02-05 01:58:38 AM

SELECT dbo.ufn_FormatDateTime(GETDATE(),'(dddd) mmmm dd, yyyy hh:mm:ss.fff tt')
--Output : (Sunday) February 05, 2012 01:58:38.723 AM

SELECT dbo.ufn_FormatDateTime(GETDATE(),'dd/MM/yyyy')
--Output : 05/02/2012

SELECT dbo.ufn_FormatDateTime(GETDATE(),'yyyy MMM, dd (ddd) hh:mm:ss tt')
-- Output : 2012 Feb, 05 (Sun) 01:58:38 AM

从此链接获取代码段。 http://www.tainyan.com/codesnippets/entry-62/sql-server-date-time-format-function.html

答案 3 :(得分:0)

答案 4 :(得分:0)

假设Oracle:

select TO_CHAR(SYSDATE, "dd/mm-yyyy HH24:mi")
    from DUAL;

假设SQL Server:

select STR(DATEPART(DAY, GETDATE()), 2) 
        + '/' 
        + STR(DATEPART(MONTH, GETDATE()), 2) 
        + '-' 
        + STR(DATEPART(YEAR, GETDATE()), 4) 
        + ' ' 
        + STR(DATEPART(HOUR, GETDATE()), 2) 
        + ':' 
        + STR(DATEPART(MINUTE, GETDATE()), 2);

答案 5 :(得分:0)

我用于德国和瑞士的小例子:dd.mm.yyyy hh:mm

SELECT CONVERT(varchar, GETDATE(), 104) + ' ' + LEFT(CONVERT(varchar, GETDATE(), 108), 5)