我希望我的日期为YYYY-MM-DD(DD-MM-YYYY),我似乎无法转换成这种形式。我已经看过CAST and Convert T-SQL。
作为一般问题,我可以根据自己的需要格式化日期,例如DD-MM(YEAR)等。您可以在MYSQL中轻松地做到这一点。
SELECT GETDATE() // start with this query
要获取没有时间的日期:
--char(10) limits the length to 10 characters thereby removing the time stamp
SELECT CONVERT(char(10), GetDate(),126) -- Output: 2011-11-07
获得带有时间戳的日期:
SELECT CONVERT(VARCHAR, GetDate(), 126) --Output: 2011-11-07T13:42:25.913
请参阅MSDN docs以获取所有可能的格式。
SELECT CONVERT(VARCHAR(19), GETDATE(), 120) /*YYYY-MM-DD HH:MI:SS(24h)*/
SELECT CONVERT(VARCHAR(23), GETDATE(), 126) /*YYYY-MM-DDTHH:MM:SS:MMM*/
SELECT CONVERT(VARCHAR(10), GETDATE(), 102) AS [YYYY.MM.DD]
SELECT CONVERT(VARCHAR(10), GETDATE(), 111) AS [YYYY/MM/DD]
尝试格式120
:
SELECT CONVERT(VARCHAR, GETDATE(), 120) -- result: 2011-11-07 13:48:45
如果要截断此内容以便仅返回日期部分,请在VARCHAR
转换上指定大小限制:
SELECT CONVERT(VARCHAR(10), GETDATE(), 120) -- result: 2011-11-07
这绝对不是最快的选择,但它符合您的要求,将来可能对其他人有用。
DECLARE @date DATETIME
SET @date = GETDATE()
SELECT CAST(DATEPART(YYYY, @date) AS NVARCHAR(4)) + '-'
+ CAST(DATEPART(MM, @date) AS NVARCHAR(2)) + '-'
+ CAST(DATEPART(DD, @date) AS NVARCHAR(2)) + ' ('
+ CAST(DATEPART(DD, @date) AS NVARCHAR(2)) + '-'
+ CAST(DATEPART(MM, @date) AS NVARCHAR(2)) + '-'
+ CAST(DATEPART(YYYY, @date) AS NVARCHAR(4)) + ')'
它输出:
2011-11-7 (7-11-2011)