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

我怎么做呢?


当前回答

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

其他回答

你没有说什么语言,但我假设是c# /。NET,因为它具有原生DateTime数据类型。在这种情况下,只需使用ToString方法进行转换,并使用如下格式说明符:

DateTime d = DateTime.Today;
string result = d.ToString("yyyy-MM-dd");

但是,我要警告不要在数据库查询中使用它或连接到SQL语句中。数据库需要使用特定的格式化字符串。如果您想要完成这个任务,最好将时间部分归零,并使用DateTime作为SQL参数。

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

CONVERT(VARCHAR, GETDATE(), 23)

你没有说哪个数据库,但是用mysql这里是一个从时间戳中获得日期的简单方法(varchar类型转换应该自动发生):

mysql> select date(now());
+-------------+
| date(now()) |
+-------------+
| 2008-09-16  | 
+-------------+
1 row in set (0.00 sec)

最短最简单的方法是:

DECLARE @now AS DATETIME = GETDATE()

SELECT CONVERT(VARCHAR, @now, 23)