在SQL中将日期字段更改为上个月的最后一天

在SQL中将日期字段更改为上个月的最后一天,sql,date,Sql,Date,我的数据库中有一个日期字段,我需要将其更改为上个月的最后一天。目前,此字段中的所有日期均为每月的第一天。我知道我可以用案例陈述来做这件事,但是,我知道必须有一种更简单的方法来做这件事 这也是一个日期时间字段,如果这有区别的话 非常感谢您的帮助。在SQL SERVER中,您可以这样做: UPDATE MYTABLE SET MYDATEFIELD = DATEADD(DAY,-1,MYDATEFIELD); 在Oracle中,它应该是: UPDATE MYTABLE SET MYDATEFI

我的数据库中有一个日期字段,我需要将其更改为上个月的最后一天。目前,此字段中的所有日期均为每月的第一天。我知道我可以用案例陈述来做这件事,但是,我知道必须有一种更简单的方法来做这件事

这也是一个日期时间字段,如果这有区别的话


非常感谢您的帮助。

在SQL SERVER中,您可以这样做:

UPDATE MYTABLE 
SET MYDATEFIELD = DATEADD(DAY,-1,MYDATEFIELD);
在Oracle中,它应该是:

UPDATE MYTABLE 
SET MYDATEFIELD = MYDATEFIELD - 1;

在SQL SERVER中,每个主要数据库都应该有非常相似的内容。您可以这样做:

UPDATE MYTABLE 
SET MYDATEFIELD = DATEADD(DAY,-1,MYDATEFIELD);
update your_table
set column_date=DATEADD(day,-1,DATEADD(month,(MONTH(@date)-1),DATEADD(year,Year(column_date)-1900,0)))
在Oracle中,它应该是:

UPDATE MYTABLE 
SET MYDATEFIELD = MYDATEFIELD - 1;

在SQL SERVER中,每个主要数据库都应该有非常相似的内容。您可以这样做:

UPDATE MYTABLE 
SET MYDATEFIELD = DATEADD(DAY,-1,MYDATEFIELD);
update your_table
set column_date=DATEADD(day,-1,DATEADD(month,(MONTH(@date)-1),DATEADD(year,Year(column_date)-1900,0)))
在Oracle中,它应该是:

UPDATE MYTABLE 
SET MYDATEFIELD = MYDATEFIELD - 1;

在SQL SERVER中,每个主要数据库都应该有非常相似的内容。您可以这样做:

UPDATE MYTABLE 
SET MYDATEFIELD = DATEADD(DAY,-1,MYDATEFIELD);
update your_table
set column_date=DATEADD(day,-1,DATEADD(month,(MONTH(@date)-1),DATEADD(year,Year(column_date)-1900,0)))
在Oracle中,它应该是:

UPDATE MYTABLE 
SET MYDATEFIELD = MYDATEFIELD - 1;

每个主要数据库都应该有一些非常相似的东西

您使用什么数据库系统?postgresql、sqlserver、oracle……您使用什么数据库系统?postgresql、sqlserver、oracle……您使用什么数据库系统?postgresql、sqlserver、oracle……您使用什么数据库系统?postgresql、sqlserver、oracle……是否为日期时间域有关系吗?不,不应该有关系。是否为日期时间域有关系吗?不,不应该有关系。是否为日期时间域有关系吗?不,不应该有关系。是否为日期时间域有关系吗?不应该有关系。
update your_table
set column_date=DATEADD(day,-1,DATEADD(month,(MONTH(@date)-1),DATEADD(year,Year(column_date)-1900,0)))