如何将DateTime转换为VarChar
时间:2020-03-05 18:56:30 来源:igfitidea点击:
我正在Sql Server 2005中进行查询,需要将" DateTime"变量中的值转换为" yyyy-mm-dd"格式的" varchar"变量(无时间部分)。我怎么做?
解决方案
回答
请尝试以下操作:
CONVERT(varchar(10), [MyDateTimecolumn], 20)
对于一个完整的日期时间,而不仅仅是日期,请执行以下操作:
CONVERT(varchar(23), [MyDateTimecolumn], 121)
有关转换样式,请参见此页面:
http://msdn.microsoft.com/en-us/library/ms187928.aspx
或者
SQL Server CONVERT()函数
回答
转换或者转换:
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), '.', '-')
回答
我们没有说哪个数据库,但是使用mysql这是从时间戳获取日期的简单方法(并且varchar类型转换应自动发生):
mysql> select date(now()); +-------------+ | date(now()) | +-------------+ | 2008-09-16 | +-------------+ 1 row in set (0.00 sec)
回答
请尝试以下操作:
CONVERT(VARCHAR(10),GetDate(),102)
然后,我们需要替换"。"和 "-"。
这是一个可以帮助网站
http://www.mssqltips.com/tip.asp?tip=1145
回答
使用Microsoft Sql Server:
-- -- Create test case -- DECLARE @myDateTime DATETIME SET @myDateTime = '2008-05-03' -- -- Convert string -- SELECT LEFT(CONVERT(VARCHAR, @myDateTime, 120), 10)
回答
我们没有说什么语言,但我假设使用的是C#/。NET,因为它具有本机的DateTime数据类型。在这种情况下,只需使用ToString
方法将其转换并使用格式说明符,例如:
DateTime d = DateTime.Today; string result = d.ToString("yyyy-MM-dd");
但是,我会警告不要在数据库查询中使用此字符串,也不要将其串联到SQL语句中。数据库要求使用特定的格式字符串。如果这是我们要实现的目标,那么最好将时间部分清零并使用DateTime作为SQL参数。
回答
declare @dt datetime set @dt = getdate() select convert(char(10),@dt,120)
我有固定的数据长度char(10)
,因为你想要一个特定的字符串格式。