20 lines
		
	
	
		
			572 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			572 B
		
	
	
	
		
			Python
		
	
	
	
	
	
from datetime import date
 | 
						|
 | 
						|
from sqlalchemy import select, func, literal, text, cast, CTE
 | 
						|
from sqlalchemy.dialects.postgresql import TIMESTAMP
 | 
						|
 | 
						|
 | 
						|
def generate_date_range(date_from: date, date_to: date, additional_columns: list[str]) -> CTE:
 | 
						|
    cols = [literal(0).label(col_label) for col_label in additional_columns]
 | 
						|
    return select(
 | 
						|
        cast(
 | 
						|
            func.generate_series(
 | 
						|
                date_from,
 | 
						|
                date_to,
 | 
						|
                text("'1 day'")
 | 
						|
            ),
 | 
						|
            TIMESTAMP(timezone=False)
 | 
						|
        ).label("date"),
 | 
						|
        *cols,
 | 
						|
    ).cte()
 |