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

我怎么做呢?


当前回答

OP提到了datetime格式。对我来说,时间成了绊脚石。 我认为在格式化之前删除时间部分(通过强制转换datetime到date)会更简洁一些。

convert( varchar(10), convert( date, @yourDate ) , 111 )

其他回答

时间格式为'yyyy-mm-dd 00:00:00.000'


SELECT CAST( CONVERT(VARCHAR, GETDATE(), 101) AS DATETIME) ; 

试试下面的方法:

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

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

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

查看本页转换样式:

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

select REPLACE(CONVERT(VARCHAR, FORMAT(GETDATE(), N'dd/MM/yyyy hh:mm:ss tt')),'.', '/')

结果是05/05/2020 10:41:05 AM

使用Microsoft SQL Server:

使用CONVERT语法:

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

例子:

SELECT CONVERT(varchar,d.dateValue,1-9)

对于样式,您可以在这里找到更多信息:MSDN - Cast和转换(Transact-SQL)。

declare @dt datetime

set @dt = getdate()

select convert(char(10),@dt,120) 

我有固定的数据长度的字符(10),因为你想要一个特定的字符串格式。