如何将DATETIME
值(2010-12-02 15:20:17.000
)显示为02/12-2010 15:20
?
答案 0 :(得分:2)
对于SQL Server:
select stuff(convert(varchar, getdate(), 105), 3, 1, '/') + ' ' + left(convert(varchar, getdate(), 8), 5)
答案 1 :(得分:2)
DateTime
是DateTime
是DateTime
- 它只保存日期和时间,并且没有任何字符串表示。
有关详细信息,请参阅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)