【问题标题】:How to insert datetime like this format 'MM/dd/yyyy hh:mm:ss'?如何像这种格式'MM/dd/yyyy hh:mm:ss'插入日期时间?
【发布时间】:2025-11-24 15:40:01
【问题描述】:

我想将我的 DateTime 插入 SQL Server,例如 'MM/dd/yyyy hh:mm:ss'。

一般来说,我已经形成了以下查询以在 SQL 中插入该 DateTime。

insert into tablename values(convert(date,'10/02/2012',110))

它像"2012-10-02"这样插入,但我不知道为什么它会这样插入?

我是 SQL Server 新手。

这样存储 '02-10-2016' 的美国格式是否可行?

【问题讨论】:

  • 日期始终存储在内部数值中。 dd/MM/yyyy 的格式会在呈现给您时发生。您只需要更改数据库的默认日期显示格式。 docs.microsoft.com/en-us/sql/t-sql/statements/…
  • 如何更改数据库的默认日期显示?
  • 你为什么不能SELECT FORMAT(GETDATE(), 'MM/dd/yyyy hh:mm:ss')
  • @KtX2SkD 为什么要这样做,并且必须在客户端处理解析?设置文本框、报告的格式字符串,非常简单
  • @prabhu 数据库中没有“演示文稿”之类的东西。呈现数据的是您的客户端代码。您正在构建什么样的应用程序,使用什么语言,为什么不在需要时设置所需的格式?

标签: sql-server date datetime


【解决方案1】:

使用这个

假设日期列是date_column,您可以使用convert,同时以各种格式显示date_column。阅读附件中的各种格式参考。

SELECT CONVERT(VARCHAR(10), date_column, 110) AS [MM-DD-YYYY] from tablename;

编辑:将日期格式从意大利语更正为美国,因为我之前误读了问题。

http://www.sql-server-helper.com/sql-server-2008/sql-server-2008-date-format.aspx

【讨论】:

  • 没有理由在数据库上硬编码任意格式。客户更容易决定使用哪种格式。在许多情况下,它是自动的,例如,当桌面客户端使用用户的区域设置进行显示时,或者网页使用浏览器接受的语言用于相同目的时
  • 我想你只是想说,日期应该在读取时转换,而不是在写入时转换。
  • @PanagiotisKanavos - OP 说他想以特定格式显示日期,这就是它的作用。 [MM-DD-YYYY] 只是一个列别名。
  • 不,他说他想以特定格式存储,因为他假设不知何故,日期是有格式的。此外,如果您想显示任何内容并且 NOT 以“第 16 个月的第 6 天”结尾,则应在客户端格式化日期。如果 OP 混淆了某些内部格式的 SSMS 日期显示,他很可能也会尝试用错误的格式解析该字符串
  • 我的想法是,如果日期列存储为date(如本例所示),无论何时您想在报告/UI/csv_file 上显示它,都可以在查询级别使用转换特别需要的输出。可能我说的不对,但根据我所处理的场景,这就是我的想法。
最近更新 更多