我需要将DateTime变量中的值转换为yyyy-mm-dd格式的varchar变量(没有时间部分)。
我怎么做呢?
我需要将DateTime变量中的值转换为yyyy-mm-dd格式的varchar变量(没有时间部分)。
我怎么做呢?
当前回答
你可以使用DATEPART(DATEPART, VARIABLE)。例如:
DECLARE @DAY INT
DECLARE @MONTH INT
DECLARE @YEAR INT
DECLARE @DATE DATETIME
@DATE = GETDATE()
SELECT @DAY = DATEPART(DAY,@DATE)
SELECT @MONTH = DATEPART(MONTH,@DATE)
SELECT @YEAR = DATEPART(YEAR,@DATE)
其他回答
时间格式为'yyyy-mm-dd 00:00:00.000'
SELECT CAST( CONVERT(VARCHAR, GETDATE(), 101) AS DATETIME) ;
SQL Server 2012有一个新函数,FORMAT: http://msdn.microsoft.com/en-us/library/ee634924.aspx
并且您可以使用自定义日期时间格式字符串:http://msdn.microsoft.com/en-us/library/ee634398.aspx
这些页面暗示它也可以在SQL2008R2上使用,但是我没有一个方便的页面来测试这种情况。
示例用法(Australian datetime):
FORMAT(VALUE,'dd/MM/yyyy h:mm:ss tt')
使用Microsoft SQL Server:
使用CONVERT语法:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
例子:
SELECT CONVERT(varchar,d.dateValue,1-9)
对于样式,您可以在这里找到更多信息:MSDN - Cast和转换(Transact-SQL)。
这就是我怎么做的:CONVERT(NVARCHAR(10), DATE1, 103))
CONVERT(VARCHAR, GETDATE(), 23)