首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL date_add()怎么用月入呢?

MySQL date_add()怎么用月入呢?
EN

Stack Overflow用户
提问于 2009-11-10 21:49:18
回答 3查看 560关注 0票数 0

Hallo all,我有这个SQL

代码语言:javascript
复制
SELECT DATE_ADD( '2009-'+ MONTH( NOW() ) +'-01' , INTERVAL -1 MONTH );

我不能让它工作,我做错了什么?

坦克求救。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-10 21:53:04

代码语言:javascript
复制
SELECT CONCAT_WS('-', '2009', MONTH(NOW()), '01') - INTERVAL 1 MONTH
票数 1
EN

Stack Overflow用户

发布于 2009-11-10 22:10:33

这是不起作用的日期的连接。它将字符串转换为数字,因此得到2009+11+-1 = 2019,然后无法转换为日期。

您可以使用last_day函数来获得当前月份的最后一天,添加一天以获得下个月的下一天,然后减去两个月以获得上个月的第一天,而不是从字符串中连接日期:

代码语言:javascript
复制
select last_day(now()) + interval 1 day - interval 2 month;
票数 1
EN

Stack Overflow用户

发布于 2009-11-10 21:58:15

加号是一个算术运算符,你必须使用concat。

代码语言:javascript
复制
SELECT DATE_ADD( concat('2009-',MONTH(NOW()),'-01') , INTERVAL -1 MONTH )

或者更好

代码语言:javascript
复制
select date(now()) -  interval day(NOW())-1 day - interval 1 month;

(这也将在2010年起作用)

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1708097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档