【问题标题】:Change the format of joining date to month-day,year sql更改加入日期格式为月-日,年sql
【发布时间】:2020-08-18 19:43:54
【问题描述】:

将加入日期的格式更改为月-日、年,例如1992 年 1 月 31 日。

查询

select ename, to_char(joining_date,'Month DD,YYYY.') from emp_demo ;

错误

 'to_char' is not a recognized built-in function name.

表格emp_demo格式

joining_date
1992-01-31

【问题讨论】:

  • 也许阅读了文档? to_char 不是 tsql 函数。如果这是您的目标,搜索互联网会发现很多关于将其转换为 tsql 的讨论。
  • 你说“加入日期”;您是说您正在使用包含JOIN 子句中所述日期的列吗?如果是这样,请将其保留为日期和时间数据类型;永远不要将您的日期作为varchar 存储在您的RDBMS 中。如果只是为了显示目的,那么更改显示格式的正确位置是在显示层中。
  • 感谢@Larnu....是的,我需要的是显示层

标签: sql sql-server tsql date select


【解决方案1】:

你可以试试这个查询。

Select Convert(Varchar(7), CONVERT(Varchar(20), getdate(), 100)) 
+ ', ' + Cast(year(getdate()) as varchar(4)) as StatusOn

Select CAST(GETDATE() AS CHAR(3)) + ' ' + CONVERT(char(2), getdate(), 103) + ', '+ 
CONVERT(char(4), year(getdate())) as StatusOn

输出

【讨论】:

    【解决方案2】:

    SQL Server 非常适合在没有格式的情况下转换日期。试试:

    select cast(joining_date as date)
    from emp_demo;
    

    Here 是一个 dbfiddle。

    对于逆变换,您想使用format(),格式为'MMMM dd,yyyy'

    【讨论】:

    • 我希望将日期格式从 1992-01-31 更改为 1992 年 1 月 1 日
    • @ShailajaGuptaKapoor 。 . . .你为什么想这么做? 1992-01-31 是 ISO 标准格式。这是写日期的最佳方式。
    • 这是面试问题的一部分,因此被问到
    【解决方案3】:

    您似乎希望以给定的格式显示您的日期(这是 to_char() 在 Oracle 中所做的)。

    在 SQL Server 中,可以使用format():

    select ename, format(joining_date, 'MMMM dd,yyyy.')
    

    Demo on DB Fiddle

    select format(getdate(),'MMMM dd,yyyy.')
    

    产量:

    May 04,2020.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多