SQL Server:更改日期格式
我需要将日期格式从“yyyy-mm-dd”更改为“dd.mm.yyyy” 我的表中有这样的数据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
'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
。在这种情况下,你肯定可以得到你想要的,但你不应该想要它。