我需要将DateTime变量中的值转换为yyyy-mm-dd格式的varchar变量(没有时间部分)。
我怎么做呢?
我需要将DateTime变量中的值转换为yyyy-mm-dd格式的varchar变量(没有时间部分)。
我怎么做呢?
当前回答
最短最简单的方法是:
DECLARE @now AS DATETIME = GETDATE()
SELECT CONVERT(VARCHAR, @now, 23)
其他回答
简单使用“转换”,然后使用“格式”得到你想要的日期格式
DECLARE @myDateTime DATETIME
SET @myDateTime = '2008-05-03'
SELECT FORMAT(CONVERT(date, @myDateTime ),'yyyy-MM-dd')
Try:
select replace(convert(varchar, getdate(), 111),'/','-');
更多关于ms sql技巧
写一个函数
CREATE FUNCTION dbo.TO_SAP_DATETIME(@input datetime)
RETURNS VARCHAR(14)
AS BEGIN
DECLARE @ret VARCHAR(14)
SET @ret = COALESCE(SUBSTRING(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(26), @input, 25),'-',''),' ',''),':',''),1,14),'00000000000000');
RETURN @ret
END
强制转换或转换:
CAST的语法:
CAST ( expression AS data_type [ (length ) ])
CONVERT的语法:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
http://msdn.microsoft.com/en-us/library/ms187928.aspx
实际上,因为你要求了一个特定的格式:
REPLACE(CONVERT(varchar(10), Date, 102), '.', '-')
declare @dt datetime
set @dt = getdate()
select convert(char(10),@dt,120)
我有固定的数据长度的字符(10),因为你想要一个特定的字符串格式。