Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL中格式化日期?_Sql_Sql Server 2005_Datetime_Formatting - Fatal编程技术网

在SQL中格式化日期?

在SQL中格式化日期?,sql,sql-server-2005,datetime,formatting,Sql,Sql Server 2005,Datetime,Formatting,我希望我的日期为YYYY-MM-DD(DD-MM-YYYY),我似乎无法转换为此表单。我已经看过了 作为一个一般性的问题,我可以根据我的需要格式化日期,比如DD-MM(YEAR)等。你可以在MYSQL中轻松地做到这一点 SELECT GETDATE() // start with this query 要获取没有时间的日期,请执行以下操作: --char(10) limits the length to 10 characters thereby removing the time stamp

我希望我的日期为YYYY-MM-DD(DD-MM-YYYY),我似乎无法转换为此表单。我已经看过了

作为一个一般性的问题,我可以根据我的需要格式化日期,比如DD-MM(YEAR)等。你可以在MYSQL中轻松地做到这一点

SELECT GETDATE() // start with this query

要获取没有时间的日期,请执行以下操作:

--char(10) limits the length to 10 characters thereby removing the time stamp
SELECT CONVERT(char(10), GetDate(),126) -- Output: 2011-11-07
要获取带有时间戳的日期,请执行以下操作:

SELECT CONVERT(VARCHAR, GetDate(), 126) --Output: 2011-11-07T13:42:25.913

有关所有可能的格式,请参阅。

要获取不带时间的日期,请执行以下操作:

--char(10) limits the length to 10 characters thereby removing the time stamp
SELECT CONVERT(char(10), GetDate(),126) -- Output: 2011-11-07
要获取带有时间戳的日期,请执行以下操作:

SELECT CONVERT(VARCHAR, GetDate(), 126) --Output: 2011-11-07T13:42:25.913

有关所有可能的格式,请参阅。

尝试格式化
120

SELECT CONVERT(VARCHAR, GETDATE(), 120) -- result: 2011-11-07 13:48:45
如果要截断此值,以便只返回日期部分,请在
VARCHAR
转换上指定大小约束:

SELECT CONVERT(VARCHAR(10), GETDATE(), 120) -- result: 2011-11-07

尝试格式化
120

SELECT CONVERT(VARCHAR, GETDATE(), 120) -- result: 2011-11-07 13:48:45
如果要截断此值,以便只返回日期部分,请在
VARCHAR
转换上指定大小约束:

SELECT CONVERT(VARCHAR(10), GETDATE(), 120) -- result: 2011-11-07

这肯定不是最快的选择,但它符合您的要求,并且在将来可能对其他人有用

DECLARE @date DATETIME
SET @date = GETDATE()
SELECT CAST(DATEPART(YYYY, @date) AS NVARCHAR(4)) + '-' 
 + CAST(DATEPART(MM, @date) AS NVARCHAR(2)) + '-'
 + CAST(DATEPART(DD, @date) AS NVARCHAR(2)) + ' ('
 + CAST(DATEPART(DD, @date) AS NVARCHAR(2)) + '-'
 + CAST(DATEPART(MM, @date) AS NVARCHAR(2)) + '-'
 + CAST(DATEPART(YYYY, @date) AS NVARCHAR(4)) + ')' 
它输出:

2011-11-7 (7-11-2011)

这肯定不是最快的选择,但它符合您的要求,并且在将来可能对其他人有用

DECLARE @date DATETIME
SET @date = GETDATE()
SELECT CAST(DATEPART(YYYY, @date) AS NVARCHAR(4)) + '-' 
 + CAST(DATEPART(MM, @date) AS NVARCHAR(2)) + '-'
 + CAST(DATEPART(DD, @date) AS NVARCHAR(2)) + ' ('
 + CAST(DATEPART(DD, @date) AS NVARCHAR(2)) + '-'
 + CAST(DATEPART(MM, @date) AS NVARCHAR(2)) + '-'
 + CAST(DATEPART(YYYY, @date) AS NVARCHAR(4)) + ')' 
它输出:

2011-11-7 (7-11-2011)

顺便说一句,我可以根据我的需要格式化它,比如DD-MM(YYYY),现在我得到了它的逻辑,使用varchar(10),其余的数据被忽略。有人应该解释:)顺便说一句,我可以根据我的需要格式化它,比如DD-MM(YYYY),现在我得到了它的逻辑,使用varchar(10),其余的数据被忽略。应该有人解释:)作为一般答案,不要在SQL中设置格式,在前端、报表编写器等中设置格式。作为一般答案,不要在SQL中设置格式,在前端、报表编写器等中设置格式。