SQL Server 日期 - 我可以获得日期和时间吗?

Mic*_*ant 3 sql-server date-format

在 SQL Server 中,我可以做相当于to_char(date_field, 'YYYY-MM-DD:HH24')在 Oracle 中的操作2012-01-30:23吗?

Aar*_*and 10

在 SQL Server <= 2012 中,您可以说:

SELECT CONVERT(CHAR(10), date_field, 120) 
  + ':' + RIGHT('0' + CONVERT(VARCHAR(2), DATEPART(HOUR, date_field)), 2)
  FROM dbo.table ...;
Run Code Online (Sandbox Code Playgroud)

或者

SELECT STUFF(CONVERT(CHAR(13), date_field, 120), 11, 1, ':')
  FROM dbo.table ...;
Run Code Online (Sandbox Code Playgroud)

在 SQL Server 2012 中,这要容易得多;你可以说:

SELECT FORMAT(date_field, 'yyyy-MM-dd:HH')
  FROM dbo.table ...;
Run Code Online (Sandbox Code Playgroud)

虽然FORMAT速度要慢得多,所以如果你大规模地这样做,它不是我会使用的(实际上我强烈建议你考虑在表示层而不是在 SQL Server 中格式化你的日期输出)。

SQL小提琴:http ://sqlfiddle.com/#! 6/72276/5