【问题标题】:Convert TEXT to Date in SQL Server 2012在 SQL Server 2012 中将文本转换为日期
【发布时间】:2015-09-22 16:13:43
【问题描述】:

我有一个这种格式的文本31/10/15。

如何将其转换为 DATE 格式?

因为我需要让用户使用日期范围从数据中搜索。

示例:从 15/7/13 到 31/10/15

或者有没有办法在不转换为日期的情况下这样做?

【问题讨论】:

  • 您需要指定RDMBS,每个数据库对dates有差异
  • 以后,请作为单独的问题提出单独的问题。
  • 目前还不清楚“TEXT”是指一般的字符数据还是字符串数据,还是指特定的text数据类型。明智地将代码格式化为代码有助于更好地理解。

标签: sql date search sql-server-2012


【解决方案1】:

您可以为此使用CONVERT():

DECLARE @d VARCHAR(50) = '31/10/50'
SELECT CONVERT(DATE, @d,3)

请注意,对于 2 位数年份,SQL Server 将使 50 岁及以上的年份以 '19' 开头,而 49 及以下将是 '20'

存储为DATE 字段将便于比较,否则您必须在每一步都执行此转换。

【讨论】:

    【解决方案2】:

    使用CONVERT;示例:

    SELECT [Date] = CONVERT(date, '31/10/15', 3);

    是的,可以以与您提供的示例相同的格式搜索日期,但不要这样做 - 在查询和表格列中使用正确的数据类型。

    【讨论】:

      猜你喜欢
      • 2020-12-23
      • 1970-01-01
      • 2016-09-22
      • 1970-01-01
      • 1970-01-01
      • 2014-08-09
      • 2012-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多