sql中的getdate()以不同的格式显示日期

时间:2014-05-09 11:24:51

标签: sql sql-server sql-server-2012 sql-function

这不是一个问题,只是一个问题。

当我在玩SQL查询时,我发现了一些我无法知道它是如何发生的事情。

我使用了以下查询:

select Replace(getdate(),'-','')

我得到了像

这样的结果
May  9 2014  4:51PM

现在,我想将查询更改为:

Select REPLACE(Getdate(),'-','/') 

或使用任何其他字符代替'/',我得到了相同的输出。

如果有人可以解释这是怎么回事,我将不胜感激。是的,还有一件事,你能不能指导我如何格式化这个问题,因为我知道这个问题在发布之后需要格式化......:P

2 个答案:

答案 0 :(得分:2)

REPLACE()函数将datetime值转换为日期的字符串表示

答案 1 :(得分:2)

替换功能的定义为:

REPLACE ( string_expression , string_pattern , string_replacement )

其中

  1. string_expression:是否要搜索字符串表达式。
  2. string_pattern:是否找到子字符串。
  3. string_replacement:是替换字符串。
  4. 现在发生的事情是Getdate()将当前日期作为datetime数据类型返回,该数据类型被隐式转换为varchar或者说一个字符串表达式来评估函数。尝试将getdate()转换为varchar,如下所示,你应该解决你的困惑:

    select CAST( getdate() AS nvarchar(25))
    

    您可以在此处详细了解隐式转化: http://msdn.microsoft.com/en-us/library/ms187928.aspx