我需要将DateTime变量中的值转换为yyyy-mm-dd格式的varchar变量(没有时间部分)。

我怎么做呢?


当前回答

最短最简单的方法是:

DECLARE @now AS DATETIME = GETDATE()

SELECT CONVERT(VARCHAR, @now, 23)

其他回答

这就是我怎么做的:CONVERT(NVARCHAR(10), DATE1, 103))

试试下面的方法:

CONVERT(varchar(10), [MyDateTimecolumn], 20)

对于一个完整的约会时间,而不仅仅是约会,请:

CONVERT(varchar(23), [MyDateTimecolumn], 121)

查看本页转换样式:

http://msdn.microsoft.com/en-us/library/ms187928.aspx 或 SQL Server CONVERT()函数

试试下面的SQL:

select REPLACE(CONVERT(VARCHAR(24),GETDATE(),103),'/','_') + '_'+ 
       REPLACE(CONVERT(VARCHAR(24),GETDATE(),114),':','_')
CONVERT(VARCHAR, GETDATE(), 23)

你可以使用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)