【问题标题】:convert Datetime 'YYYY-MM-DD HH:mm:ss' to 'DD/MM/YYYY HH:mm:ss'将日期时间 'YYYY-MM-DD HH:mm:ss' 转换为 'DD/MM/YYYY HH:mm:ss'
【发布时间】:2017-06-22 11:04:28
【问题描述】:

我有一个列名为 [Create_Date] as [Datetime] 的表(例如 = '2016-06-07 07:29:45.290')。

我的一位客户希望此列的格式为 DD\MM\YYYY hh:mm:ss(例如 = '07/06/2016 07:29:45')。

我是这样做的:

SELECT  FORMAT ( convert(datetime2(0),create_date), 'dd/MM/yyyy hh:mm:ss', 'en-US' ) as Record_Date;

这个解决方案的问题在于,列类型 Record_Date 是 [varchar] 并且我希望它采用 datetime2(0) 格式。

【问题讨论】:

  • 你的意思是你想将目标字段更改为日期时间 2?
  • 是的!到 datetime2(0)/datetime,格式为 'dd/MM/yyyy hh:mm:ss'

标签: sql sql-server database date datetime


【解决方案1】:

日期/时间值以内部格式存储。当您返回它们时,它们会以内部格式返回。然后读取数据的应用程序决定如何格式化该值。

可以做的一件事是创建一个计算列,其值格式化为字符串。如果您的代码有效,您可以这样做:

alter table t
    add create_date_ddmmyyyy as (format( convert(datetime2(0), create_date), 'dd/MM/yyyy hh:mm:ss', 'en-US' ) );

然后,您可以在需要格式化版本时参考create_date_ddmmyyyy(我建议它对输出有用)。

【讨论】:

  • 抱歉,我的问题可能不清楚。我不想将新列“Record_Date”填充到表中,我需要它,结果集的格式为 'dd/MM/yyyy hh:mm:ss' 并作为 datetime/datetime2(0)数据类型 。 10X
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-07
  • 1970-01-01
  • 1970-01-01
  • 2019-01-14
  • 1970-01-01
  • 1970-01-01
  • 2016-12-16
相关资源
最近更新 更多