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

我怎么做呢?


当前回答

CONVERT(VARCHAR, GETDATE(), 23)

其他回答

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

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')

对于SQL Server 2008+,可以同时使用CONVERT和FORMAT。

例如,对于欧洲风格(例如德国)的时间戳:

CONVERT(VARCHAR, FORMAT(GETDATE(), 'dd.MM.yyyy HH:mm:ss', 'de-DE'))

试试下面的方法:

CONVERT(VARCHAR(10),GetDate(),102)

然后需要将“。”替换为“-”。

这里有一个网站可以提供帮助 http://www.mssqltips.com/tip.asp?tip=1145

Try:

select replace(convert(varchar, getdate(), 111),'/','-');

更多关于ms sql技巧