如何将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),因为你想要一个特定的字符串格式。