SQL Server:更改日期格式

SQL Server:更改日期格式,sql,sql-server,Sql,Sql Server,我需要将日期格式从“yyyy-mm-dd”更改为“dd.mm.yyyy” 我的表中有这样的数据'2018-08-08',我需要将其转换为'08.08.2018' 我试过: UPDATE daily_tasks SET date = REPLACE(date, date, CONVERT(VARCHAR(255), daily_tasks.date, 102)) WHERE 1; 但是,它不起作用。您的语法看起来像SQL Server,因此我会: UPDATE daily_tasks

我需要将日期格式从“yyyy-mm-dd”更改为“dd.mm.yyyy”

我的表中有这样的数据
'2018-08-08'
,我需要将其转换为
'08.08.2018'

我试过:

UPDATE daily_tasks 
SET date = REPLACE(date, date, CONVERT(VARCHAR(255), daily_tasks.date, 102)) 
WHERE 1;

但是,它不起作用。

您的语法看起来像
SQL Server
,因此我会:

UPDATE daily_tasks 
     SET Col = REPLACE(CONVERT(VARCHAR(10), daily_tasks.date, 103), '/', '.')
WHERE . . . ;
但是,我不建议这样做,只要在必要时使用
CONVERT()
SELECT
语句即可:

SELECT REPLACE(CONVERT(VARCHAR(10), daily_tasks.date, 103), '/', '.')

您的语法看起来像
SQL Server
,因此我将执行以下操作:

UPDATE daily_tasks 
     SET Col = REPLACE(CONVERT(VARCHAR(10), daily_tasks.date, 103), '/', '.')
WHERE . . . ;
但是,我不建议这样做,只要在必要时使用
CONVERT()
SELECT
语句即可:

SELECT REPLACE(CONVERT(VARCHAR(10), daily_tasks.date, 103), '/', '.')

不管数据库是什么,日期都以内部格式存储。这是存储日期的正确方法不要将日期存储为字符串。

您可以在查询时指定格式:

CONVERT(VARCHAR(255), daily_tasks.date, 102)
或者,您甚至可以添加一个计算列来提供以下信息:

alter table daily_tasks
    add date_display as ( CONVERT(VARCHAR(255), daily_tasks.date, 102) ) ;

不管数据库是什么,日期都以内部格式存储。这是存储日期的正确方法不要将日期存储为字符串。

您可以在查询时指定格式:

CONVERT(VARCHAR(255), daily_tasks.date, 102)
或者,您甚至可以添加一个计算列来提供以下信息:

alter table daily_tasks
    add date_display as ( CONVERT(VARCHAR(255), daily_tasks.date, 102) ) ;

理想情况下,您应该将日期存储为真正的日期列,而不是文本。也就是说,日期文本
'2018-08-08'
实际上是ISO格式的,并且仍然允许您进行排序,并与其他日期文本进行比较,因此它不是那么糟糕

但将此文本转换为
'08.08.2018'
格式是错误的。如果有任何事情,您可能需要考虑添加一个新的日期栏<代码> NeXORDATION/COD>来存储这个日期信息。执行此操作,然后用以下内容填充:

UPDATE daily_tasks
SET new_date = TRY_CONVERT(datetime, date);

理想情况下,您应该将日期存储为真正的日期列,而不是文本。也就是说,日期文本
'2018-08-08'
实际上是ISO格式的,并且仍然允许您进行排序,并与其他日期文本进行比较,因此它不是那么糟糕

但将此文本转换为
'08.08.2018'
格式是错误的。如果有任何事情,您可能需要考虑添加一个新的日期栏<代码> NeXORDATION/COD>来存储这个日期信息。执行此操作,然后用以下内容填充:

UPDATE daily_tasks
SET new_date = TRY_CONVERT(datetime, date);

您可以将
date
列转换为varchar,以指定的格式存储日期。不过,我强烈建议不要这样做。您应该将其作为日期保存

如果要执行
选择
以取出数据,则可以将其转换为指定格式,如下所示:

 SELECT CONVERT(VARCHAR, daily_tasks.date, 4)

您可以将
date
列转换为varchar,以指定的格式存储日期。不过,我强烈建议不要这样做。您应该将其作为日期保存

如果要执行
选择
以取出数据,则可以将其转换为指定格式,如下所示:

 SELECT CONVERT(VARCHAR, daily_tasks.date, 4)

将日期存储为日期数据类型,并在从数据库读取数据时使用

    DECLARE @myDate DATE = '2018-08-08'
SELECT FORMAT(@myDate, 'dd.MM.yyyy')
SELECT CONVERT(VARCHAR(10), @myDate, 104)

将日期存储为日期数据类型,并在从数据库读取数据时使用

    DECLARE @myDate DATE = '2018-08-08'
SELECT FORMAT(@myDate, 'dd.MM.yyyy')
SELECT CONVERT(VARCHAR(10), @myDate, 104)

您应该将日期存储为
date
,该格式没有格式。显示值时应用格式,但在内部没有格式。永远不要在varchar商店里储存日期。@ClothessSale。我根据语法将标记更改为sql server。请用您真正使用的软件标记您的问题。
日常任务
中的
日期
列的类型是什么?大多数答案都假设它是
DATE
DATETIME
或诸如此类,但如果它已经是
VARCHAR
,则此语句将无误运行(并且不会执行任何有用的操作)。如果它是
VARCHAR
,那么根据其他类型,这是一种不好使用的类型,但是在表中将格式从ISO更改为
dd.mm.yyyy
。在这种情况下,你肯定可以得到你想要的,但你不应该想要它。你应该将日期存储为
date
,它没有格式。显示值时应用格式,但在内部没有格式。永远不要在varchar商店里储存日期。@ClothessSale。我根据语法将标记更改为sql server。请用您真正使用的软件标记您的问题。
日常任务
中的
日期
列的类型是什么?大多数答案都假设它是
DATE
DATETIME
或诸如此类,但如果它已经是
VARCHAR
,则此语句将无误运行(并且不会执行任何有用的操作)。如果它是
VARCHAR
,那么根据其他类型,这是一种不好使用的类型,但是在表中将格式从ISO更改为
dd.mm.yyyy
。在这种情况下,你肯定可以得到你想要的,但你不应该想要它。