【问题标题】:Convert text to system date format [duplicate]将文本转换为系统日期格式[重复]
【发布时间】:2016-08-04 15:04:16
【问题描述】:

我想将文本日期转换为系统日期格式。我怎样才能做到这一点?

例如,我有想要转换的格式'MM/DD/YYYY',但它可以更改,可以是dd/mm/yyyyyyyy/mm/dd

【问题讨论】:

  • 经过一段时间的困惑后,我想我明白了你想要什么:你有格式作为字符串参数,你想根据这个格式化日期?哪个版本的 SQL Server?
  • 嗨 Luis,我编辑了我的答案...
  • 嗨 Luis,我知道你一直在附近。我很好奇...我是否解决了您实际遇到的问题?我的回答对你有帮助吗?

标签: sql sql-server tsql datetime


【解决方案1】:

编辑

从 SQL Server 2012 及更高版本开始,如果您想将日期强制转换为格式化文本,您可以使用 FORMAT 函数:https://msdn.microsoft.com/en-us/library/hh213505.aspx

对于早期版本,您可能会使用如下内容:

DECLARE @d DATETIME=GETDATE();

DECLARE @TargetFormat VARCHAR(100)='DD/MM/YYYY';

SELECT CONVERT(VARCHAR(100),@d, CASE @TargetFormat
                                  WHEN 'MM/DD/YYYY' THEN 101
                                  WHEN 'DD/MM/YYYY' THEN 103
                                  --add all formats convert can undertsand
                                 ELSE 101 END )         

上一个

看这里:https://msdn.microsoft.com/en-us/library/ms187928.aspx

CONVERT中的第三个参数指定格式。

MM/DD/YYYY 是 101,dd/mm/yyyy 是 103

但是:您应该避免使用日期文字,因为它们取决于您系统的文化。

从您的问题中,我了解到您是源的所有者,因此您可以将其更改为您需要的方式。我强烈建议您使用独立格式。

看这里:https://stackoverflow.com/a/34275965/5089204

【讨论】:

  • 我不想通过代码,因为我想做这个动态,只传递给函数转换为的日期格式
  • 日期格式基于时区(以及所在国家/地区使用的时间)。
  • 对不起@Luis,但我不明白你...你想将文本日期转换为系统日期格式文本日期来自哪里,是什么你打算用它吗?
  • @Luis this 绑定到语言。你可以看看这里:stackoverflow.com/a/36421979/5089204
【解决方案2】:

这是一个例子

SELECT CONVERT(DATETIME,'04/13/2016',101)

结果是日期时间数据类型

【讨论】:

  • 我不想通过代码,因为我想做这个动态,只传递给函数转换为的日期格式
猜你喜欢
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
  • 2018-09-21
  • 1970-01-01
  • 1970-01-01
  • 2017-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多