mysql - 发票年份格式YYYY转YY
问题描述
我无法更改第二年的格式 (REPPL/ 20 /2021 /00004) ==> (REPPL/ 20/ 21 /00004)
DATE_FORMAT(@dt, '%y'),(@dt+1)
当我添加 DATE_FORMAT(@dt, '%y'),(@dt+1,'%y')它的抛出错误
请帮忙谢谢
INSERT INTO sales_invoice(
invoice_no,
date_invoiced,
order_num
) SELECT
CONCAT_WS('/','REPPL',DATE_FORMAT(@dt, '%y'),(@dt +1),
COALESCE(
LPAD(
CASE WHEN @dt > DATE_FORMAT(@dt, '%Y-04-01') THEN SUM(date_invoiced >
DATE_FORMAT(@dt,'%Y-04-01')) ELSE SUM(date_invoiced BETWEEN DATE_FORMAT(@dt, '%Y-04-01') - INTERVAL
1 YEAR AND DATE_FORMAT(@dt, '%Y-04-01'))END +1,5,0),LPAD(1, 5, 0))),@dt,"132132"FROM sales_invoice;
解决方案
那么你只是通过@dt +1
你根本没有格式化它。您需要为 CONCAT 中的每个参数添加 DATE_FORMAT,而不仅仅是第一个,first 将仅格式化第一个,第一个()
...
试试这个,添加一年的间隔,然后格式化:
DATE_FORMAT(DATE_ADD(@dt, INTERVAL 1 YEAR), '%y')
例子:
CONCAT_WS('/','REPPL',DATE_FORMAT(@dt, '%y'),DATE_FORMAT(DATE_ADD(@dt, INTERVAL 1 YEAR), '%y')),
小提琴:
**Schema (MySQL v5.7)**
---
**Query #1**
select CONCAT_WS('/','REPPL',DATE_FORMAT('2020/08/16', '%y'),DATE_FORMAT(DATE_ADD('2020/08/16', INTERVAL 1 YEAR), '%y')) AS ConcatenatedString;
| ConcatenatedString |
| ------------------ |
| REPPL/20/21 |
---
推荐阅读
- javascript - 以角度在表单构建器对象中设置值
- javascript - 在一个反应表中突出显示行在页面上的第二个中突出显示同一行
- php - Laravel 工厂没有返回正确的对象数据
- python - 如何删除重复的变量 django view.py
- rest - 使用 GraphQL 将 GET 与请求正文一起使用
- react-native - 我无法使用反应导航标签栏。这个怎么用?
- xslt - XSL 使用替换和匹配来更新值
- google-sheets - 条件格式 - 忽略空白单元格和特定值
- javascript - 为什么即使我有条件地渲染组件,道具也未定义?
- python - 有没有更好的方法从列表中检索日期时间对象?