如何从SQL Server中检索YYYY-MM-DD格式的日期?我需要这个工作与SQL Server 2000及更高。是否有一个简单的方法来执行这在SQL Server或它会更容易转换后,我检索的结果集?
我已经阅读了微软Technet上的CAST和CONVERT,但我想要的格式没有列出,改变日期格式也不是一个选项。
如何从SQL Server中检索YYYY-MM-DD格式的日期?我需要这个工作与SQL Server 2000及更高。是否有一个简单的方法来执行这在SQL Server或它会更容易转换后,我检索的结果集?
我已经阅读了微软Technet上的CAST和CONVERT,但我想要的格式没有列出,改变日期格式也不是一个选项。
当前回答
似乎没有必要做任何奇怪的事情,如果你想让你的约会被斜杠分开。 只需用反斜杠转义即可。否则你就会得到一个点。
SELECT FORMAT(GETDATE(),'yyyy\/MM');
在SQL Server 2016上测试
其他回答
SELECT Code,Description FROM TABLE
-- This will Include only date part of 14th March 2010. Any date with date companents will not be considered.
WHERE ID= 1 AND FromDate >= CONVERT(DATETIME, '2010-02-14', 126) AND ToDate <= DATEADD(dd, 1, CONVERT(DATETIME, '2010-03-14', 126))
-- This will Include the whole day of 14th March 2010
--WHERE ID= 1 AND FromDate >= CONVERT(DATETIME, '2010-02-14', 126) AND ToDate < DATEADD(dd, 1, CONVERT(DATETIME, '2010-03-14', 126))
Select convert (nvarchar (20), getdate (), 23)
如果你想在之后再次使用它作为日期而不是varchar,不要忘记将其转换回来:
select convert(datetime,CONVERT(char(10), GetDate(),126))
在你的强制转换链接中,使用样式126:
CONVERT (varchar(10), DTvalue, 126)
这缩短了时间。您要求它在yyyy-mm-dd中,这意味着它必须是字符串数据类型和日期时间。
坦率地说,除非你有充分的理由不这么做,否则我会在客户端上这么做。
带有格式说明符120的convert函数将为您提供格式“yyyy-MM-dd HH:mm:ss”,因此您只需将长度限制为10以只获得日期部分:
convert(varchar(10), theDate, 120)
然而,日期格式化通常在表示层而不是在数据库或业务层更好。如果从数据库返回格式化的日期,那么如果客户机代码需要对其进行任何计算,则必须再次将其解析为日期。
c#中的例子:
theDate.ToString("yyyy-MM-dd")