我需要将DateTime变量中的值转换为yyyy-mm-dd格式的varchar变量(没有时间部分)。
我怎么做呢?
我需要将DateTime变量中的值转换为yyyy-mm-dd格式的varchar变量(没有时间部分)。
我怎么做呢?
当前回答
DECLARE @DateTime DATETIME
SET @DateTime = '2018-11-23 10:03:23'
SELECT CONVERT(VARCHAR(100),@DateTime,121 )
其他回答
OP提到了datetime格式。对我来说,时间成了绊脚石。 我认为在格式化之前删除时间部分(通过强制转换datetime到date)会更简洁一些。
convert( varchar(10), convert( date, @yourDate ) , 111 )
DECLARE @DateTime DATETIME
SET @DateTime = '2018-11-23 10:03:23'
SELECT CONVERT(VARCHAR(100),@DateTime,121 )
Try:
select replace(convert(varchar, getdate(), 111),'/','-');
更多关于ms sql技巧
declare @dt datetime
set @dt = getdate()
select convert(char(10),@dt,120)
我有固定的数据长度的字符(10),因为你想要一个特定的字符串格式。
你没有说什么语言,但我假设是c# /。NET,因为它具有原生DateTime数据类型。在这种情况下,只需使用ToString方法进行转换,并使用如下格式说明符:
DateTime d = DateTime.Today;
string result = d.ToString("yyyy-MM-dd");
但是,我要警告不要在数据库查询中使用它或连接到SQL语句中。数据库需要使用特定的格式化字符串。如果您想要完成这个任务,最好将时间部分归零,并使用DateTime作为SQL参数。