【问题标题】:Convert Datetime into date data type in SQLserver [duplicate]在 SQLserver 中将日期时间转换为日期数据类型 [重复]
【发布时间】:2017-03-28 07:08:39
【问题描述】:

我必须从 SQL Server 中的 datetime 数据类型中删除时间戳,并希望将输出数据类型保持为具有这种格式的日期 -> mm/dd/yyyy(此输出应显示为日期数据类型而不是字符串数据类型 )。我正在使用 SQL Server 2012。

请帮忙

谢谢

【问题讨论】:

  • 您必须更详细一点。您是否有要更改数据类型的表?您只是想在 select 语句中更改它吗?
  • 感谢您抽出宝贵时间 Rich,它是日期维度表中的日期列。因为它是一个日期时间列,所以我看到了时间戳。我不想在我的输出中看到时间戳,而是想以这种格式查看日期 -> mm/dd/yyyy
  • 好吧,看看 Gordon 的回答。我认为应该涵盖它

标签: sql sql-server date timestamp


【解决方案1】:

在 SQL Server 中,date 本质上是一个没有时间组件的datetime。您只需执行以下操作即可进行转换:

cast(datetimecol as date)

两者都使用 internal 格式存储。输出格式由国际化设置(或数据库默认值)控制。您可以使用转换格式 101 将任一类型的列输出为格式为 mm/dd/yyyy 的 string

select convert(varchar(10), <col>, 101)

然后输出是具有您想要的格式的字符串。

【讨论】:

  • 谢谢 Gordon,我希望输出类型为日期,没有 mm/dd/yyyy 格式的时间戳
  • @Drake 。 . .然后专注于将值转换为 string 而不是 date
【解决方案2】:

您尝试过 CONVERT(date, [FieldName]) 吗?

请找到有关此和 CAST() here 的文档。

【讨论】:

  • 是的,我做到了,所以使用这种方法,数据类型是日期,我看不到时间戳,但它给了我这种格式的日期 -> yyyy-mm-dd,
  • 转换(日期,[字段名],101)
猜你喜欢
  • 1970-01-01
  • 2021-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-09
  • 2021-10-28
  • 1970-01-01
相关资源
最近更新 更多