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

我怎么做呢?


当前回答

使用Microsoft Sql Server:

--
-- Create test case
--
DECLARE @myDateTime DATETIME
SET @myDateTime = '2008-05-03'

--
-- Convert string
--
SELECT LEFT(CONVERT(VARCHAR, @myDateTime, 120), 10)

其他回答

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

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

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

Try:

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

更多关于ms sql技巧

DECLARE @DateTime DATETIME
SET @DateTime = '2018-11-23 10:03:23'
SELECT CONVERT(VARCHAR(100),@DateTime,121 )

试试下面的方法:

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

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

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