我需要将DateTime变量中的值转换为yyyy-mm-dd格式的varchar变量(没有时间部分)。
我怎么做呢?
我需要将DateTime变量中的值转换为yyyy-mm-dd格式的varchar变量(没有时间部分)。
我怎么做呢?
当前回答
使用Microsoft SQL Server:
使用CONVERT语法:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
例子:
SELECT CONVERT(varchar,d.dateValue,1-9)
对于样式,您可以在这里找到更多信息:MSDN - Cast和转换(Transact-SQL)。
其他回答
简单使用“转换”,然后使用“格式”得到你想要的日期格式
DECLARE @myDateTime DATETIME
SET @myDateTime = '2008-05-03'
SELECT FORMAT(CONVERT(date, @myDateTime ),'yyyy-MM-dd')
使用Microsoft Sql Server:
--
-- Create test case
--
DECLARE @myDateTime DATETIME
SET @myDateTime = '2008-05-03'
--
-- Convert string
--
SELECT LEFT(CONVERT(VARCHAR, @myDateTime, 120), 10)
强制转换或转换:
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), '.', '-')
Try:
select replace(convert(varchar, getdate(), 111),'/','-');
更多关于ms sql技巧
你没有说什么语言,但我假设是c# /。NET,因为它具有原生DateTime数据类型。在这种情况下,只需使用ToString方法进行转换,并使用如下格式说明符:
DateTime d = DateTime.Today;
string result = d.ToString("yyyy-MM-dd");
但是,我要警告不要在数据库查询中使用它或连接到SQL语句中。数据库需要使用特定的格式化字符串。如果您想要完成这个任务,最好将时间部分归零,并使用DateTime作为SQL参数。