如何从SQL Server中检索YYYY-MM-DD格式的日期?我需要这个工作与SQL Server 2000及更高。是否有一个简单的方法来执行这在SQL Server或它会更容易转换后,我检索的结果集?

我已经阅读了微软Technet上的CAST和CONVERT,但我想要的格式没有列出,改变日期格式也不是一个选项。


当前回答

你也可以用。这是通过使用新的数据类型DATE实现的。可能不能在所有以前的版本工作,但大大简化了在以后的版本中使用。

SELECT CAST(getdate() AS DATE)
SELECT LEFT(CAST(getdate() AS DATE), 7)

其他回答

对于那些也想要时间部分的人(我想),下面的片段可能会有所帮助

SELECT convert(varchar, getdate(), 120) -- yyyy-mm-dd hh:mm:ss(24h)
SELECT convert(varchar, getdate(), 121) -- yyyy-mm-dd hh:mm:ss.mmm
SELECT convert(varchar, getdate(), 126) -- yyyy-mm-ddThh:mm:ss.mmm
                              --example -- 2008-10-02T10:52:47.513
SELECT CONVERT(char(10), GetDate(),126)

限制您不想要的小时部分的varchar排骨的大小。

从SQL Server 2008你可以这样做:CONVERT(date,getdate())

这个方法对我来说很有效,简单有效(也有126条)

CONVERT(NVARCHAR(MAX), CAST(GETDATE() as date), 120)
 IFormatProvider culture = new System.Globalization.CultureInfo("fr-FR", true);

cmdGetPaymentStatement.Parameters.AddWithValue("@pStartDate", DateTime.Parse("22/12/2017", culture, System.Globalization.DateTimeStyles.AssumeLocal)).IsNullable = true;