我在SQL Server上有一个datetime
列:
Column('LAST_SEEN_DTS', DATETIME(), table=<mytable>)
我想把日期延长一天
这是有关专栏的摘录:
last_seen_dts
0 2017-06-12 15:36:05.263
1 2017-06-12 21:43:16.407
2 2017-06-13 09:02:59.457
3 2017-06-13 15:36:44.183
4 2017-06-14 03:04:07.010
5 2017-06-14 11:51:40.603
6 2017-06-15 02:53:12.373
7 2017-06-15 11:46:16.560
8 2017-06-16 02:44:12.110
9 2017-06-16 03:19:30.307
我尝试过的一种方法是:
q = select([
table.c.LAST_SEEN_DTS,
(func.cast(table.c.LAST_SEEN_DTS, DATE) + timedelta(days=1)).label('date1')
]).distinct().limit(10)
日期增加了一天,但年份也增加了70年:
date1
0 2087-06-13
1 2087-06-13
2 2087-06-14
3 2087-06-14
4 2087-06-15
5 2087-06-15
6 2087-06-16
7 2087-06-16
8 2087-06-17
9 2087-06-17
我首先尝试使用dateadd
函数:
q = select([
table.c.LAST_SEEN_DTS,
func.dateadd('day', 1, func.cast(table.c.LAST_SEEN_DTS, DATE)).label('date1')
]).distinct().limit(10)
这不起作用,因为day
选项不能指定为字符串。我试着把它当作一个常数,但是sqlalchemy
和sqlalchemy.dialects.mssql
似乎都没有
如何在SQL Server上使用SQLAlchemy实现这一点
编辑:
我知道我可以直接使用原始SQL,比如text("cast(dateadd(day, 1, LAST_SEEN_DTS) as DATE)")
,但这样做首先会破坏使用SQLAlchemy的目的
您可以尝试使用以下脚本-
相关问题 更多 >
编程相关推荐