本文翻译自:How to convert DateTime to VarChar
I am working on a query in Sql Server 2005 where I need to convert a value in DateTime
variable into a varchar
variable in yyyy-mm-dd
format (without time part). 我正在Sql Server 2005中进行查询,我需要将DateTime
变量中的值转换为yyyy-mm-dd
格式的varchar
变量(没有时间部分)。 How do I do that? 我怎么做?
#1楼
参考:https://stackoom.com/question/jlL/如何将DateTime转换为VarChar
#2楼
With Microsoft SQL Server: 使用Microsoft SQL Server:
Use Syntax for CONVERT: 使用CONVERT语法:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Example: 例:
SELECT CONVERT(varchar,d.dateValue,1-9)
For the style you can find more info here: MSDN - Cast and Convert (Transact-SQL) . 对于样式,您可以在这里找到更多信息: MSDN - 转换和转换(Transact-SQL) 。
#3楼
You can use DATEPART(DATEPART, VARIABLE)
. 您可以使用DATEPART(DATEPART, VARIABLE)
。 For example: 例如:
DECLARE @DAY INT
DECLARE @MONTH INT
DECLARE @YEAR INT
DECLARE @DATE DATETIME
@DATE = GETDATE()
SELECT @DAY = DATEPART(DAY,@DATE)
SELECT @MONTH = DATEPART(MONTH,@DATE)
SELECT @YEAR = DATEPART(YEAR,@DATE)
#4楼
declare @dt datetime
set @dt = getdate()
select convert(char(10),@dt,120)
I have fixed data length of char(10)
as you want a specific string format. 我有固定数据长度char(10)
因为你想要一个特定的字符串格式。
#5楼
我是这样做的: CONVERT(NVARCHAR(10), DATE1, 103) )
#6楼
SQL Server 2012 has a new function , FORMAT: http://msdn.microsoft.com/en-us/library/ee634924.aspx SQL Server 2012有一个新功能,格式: http : //msdn.microsoft.com/en-us/library/ee634924.aspx
and you can use custom date time format strings: http://msdn.microsoft.com/en-us/library/ee634398.aspx 并且您可以使用自定义日期时间格式字符串: http : //msdn.microsoft.com/en-us/library/ee634398.aspx
These pages imply it is also available on SQL2008R2, but I don't have one handy to test if that's the case. 这些页面暗示它也可以在SQL2008R2上使用,但我没有一个方便测试是否是这种情况。
Example usage (Australian datetime): 用法示例(澳大利亚日期时间):
FORMAT(VALUE,'dd/MM/yyyy h:mm:ss tt')