我需要将DateTime变量中的值转换为yyyy-mm-dd格式的varchar变量(没有时间部分)。
我怎么做呢?
我需要将DateTime变量中的值转换为yyyy-mm-dd格式的varchar变量(没有时间部分)。
我怎么做呢?
当前回答
select REPLACE(CONVERT(VARCHAR, FORMAT(GETDATE(), N'dd/MM/yyyy hh:mm:ss tt')),'.', '/')
结果是05/05/2020 10:41:05 AM
其他回答
简单使用“转换”,然后使用“格式”得到你想要的日期格式
DECLARE @myDateTime DATETIME
SET @myDateTime = '2008-05-03'
SELECT FORMAT(CONVERT(date, @myDateTime ),'yyyy-MM-dd')
时间格式为'yyyy-mm-dd 00:00:00.000'
SELECT CAST( CONVERT(VARCHAR, GETDATE(), 101) AS DATETIME) ;
你可以使用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)
试试下面的方法:
CONVERT(varchar(10), [MyDateTimecolumn], 20)
对于一个完整的约会时间,而不仅仅是约会,请:
CONVERT(varchar(23), [MyDateTimecolumn], 121)
查看本页转换样式:
http://msdn.microsoft.com/en-us/library/ms187928.aspx 或 SQL Server CONVERT()函数
写一个函数
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