datetime获取季度末的数据

话不多说直接上代码。

import datetime as dt
today = dt.datetime.now()
    # today =dt.strptime('2020-2-3','%Y-%m-%d')
    quarter = today.month
    if quarter <= 3:
        dts = dt.datetime(today.year - 1, 12, 31)  # 时间格式
        dtsr = dt.datetime.strftime(dts, '%Y-%m-%d')  # 字符串格式
    elif 3 < quarter <= 6:
        dts = dt.datetime(today.year, 3, 31)
        dtsr = dt.datetime.strftime(dts, '%Y-%m-%d')
    elif 6 < quarter <= 9:
        dts = dt.datetime(today.year, 6, 30)
        dtsr = dt.datetime.strftime(dts, '%Y-%m-%d')
    elif 9 < quarter:
        dts = dt.datetime(today.year, 9, 30)
        dtsr = dt.datetime.strftime(dts, '%Y-%m-%d')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您想了解如何在达梦数据库中编写存储过程来获取每季末近一年的数据,对吗?如果是这样,我可以为您提供一些思路和代码示例。 首先,您需要确定每个季度的结束日期,例如:3月31日、6月30日、9月30日和12月31日。然后,您可以编写一个存储过程来获取当前日期,并确定它所处的季度。接下来,您可以使用日期函数计算出上一个季度的结束日期,然后使用该日期和当前日期来获取近一年的数据。 以下是一个简单的示例存储过程,用于获取季度末近一年的数据: ``` CREATE PROCEDURE get_quarterly_data AS BEGIN DECLARE @current_date DATETIME DECLARE @end_date DATETIME DECLARE @start_date DATETIME SET @current_date = GETDATE() -- Determine the end date of the previous quarter IF MONTH(@current_date) IN (1, 2, 3) SET @end_date = DATEFROMPARTS(YEAR(@current_date) - 1, 12, 31) ELSE IF MONTH(@current_date) IN (4, 5, 6) SET @end_date = DATEFROMPARTS(YEAR(@current_date), 3, 31) ELSE IF MONTH(@current_date) IN (7, 8, 9) SET @end_date = DATEFROMPARTS(YEAR(@current_date), 6, 30) ELSE SET @end_date = DATEFROMPARTS(YEAR(@current_date), 9, 30) -- Calculate the start date (one year before the end date) SET @start_date = DATEADD(YEAR, -1, @end_date) -- Select data from the specified date range SELECT * FROM your_table WHERE date_column >= @start_date AND date_column <= @end_date END ``` 您需要将 `your_table` 和 `date_column` 替换为您的表名和包含日期的列名。此存储过程将返回最近一季度末近一年的数据。您可以根据需要进行修改,例如更改日期范围或更改每个季度的结束日期。 希望这可以帮助您开始编写符合您需求的存储过程。如果您还有其他问题或需要更多帮助,请随时提出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值