【问题标题】:Format values on entire column SQL格式化整列 SQL 的值
【发布时间】:2014-02-18 13:01:30
【问题描述】:

我有一列的值格式为“01-01-2012”,我需要将其更改为“01.01.2012”。我必须对该列的所有条目执行相同的操作。

您能建议一种方法吗?我需要一个通用的 SQL 语句。

谢谢

【问题讨论】:

  • 此列是什么数据类型?我假设某种形式的 VARCHARNVARCHAR?
  • @Jon 没错。它是 VARCHAR。
  • @Bhushan 感谢您的更改
  • 使用适当的 DATE 数据类型存储日期。使用适合客户端区域设置的设置显示它们,例如用一点 javascript。

标签: mysql sql date-format


【解决方案1】:

REPLACE试试这个:

update tablename set column_name=REPLACE(column_name,'-','.')

【讨论】:

    【解决方案2】:

    一种方法是使用基本的UPDATE 语句。在这种情况下,您将更新整个表格并为每一行将列的值设置为格式化值。基本大纲是这样的:

    UPDATE [TableName]
    SET    [ColumnName] = [FormattingExpression]
    

    [FormattingExpression] 的一个例子可能是:

    REPLACE ([ColumnName], '-' , '.' )
    

    这将replace '-' 和'.' 的所有实例。对于 [TableName] 表的 [ColumnName] 列中的值。

    【讨论】:

      【解决方案3】:
      WITH TEST_DATA AS (
        SELECT '12-12-2012' AS mydate FROM DUAL UNION ALL 
        SELECT '07-23-2013' FROM DUAL
      )SELECT REPLACE(mydate, '-', '.') mynewdate
       FROM TEST_DATA
      

      【讨论】:

        【解决方案4】:

        刚刚将 - 替换为 .

        REPLACE ( '01-01-2012' , '-' , '.' )
        

        【讨论】:

          【解决方案5】:

          试试str_to_date

          UPDATE `table` SET `date_col` = str_to_date(`date_col`,'%d.%m.%Y') 
          

          STR_TO_DATE(str,format)

          【讨论】:

          • @GordonLinoff,数据类型在问题的 cmets 中指定。
          • 非常感谢您的所有回答。这很好用。我无法将所有标记都标记为正确。但是 Bhushan 是第一个回答的人,其他人你有我的支持。非常感谢!! :)
          【解决方案6】:
          update table_name set column_name = replace (column_name , '-' , '.' );
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-08-06
            • 1970-01-01
            • 2014-01-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多