我正在执行SQL = "select age (date)" and it's output x year y month,
等,然后我将数据发送到Django模板的视图,但它显示z天
这里有SQL,显示" 26年3 Mons 7天"
SELECT *,age(date_of_birth)
FROM brs_cmu_passenger
WHERE user_id_id=%s" %(request.user.id)
在html中,显示" 13651天"
{% for u in profile %}
<p> Age : {{ u.age }}</p>
{% endfor %}
我只想在模板中显示年龄,但Django python无法在模板中计算。
PS。当我将年龄发送到模板django时。这是有价值的。 age=datetime.timedelta(9587)
答案 0 :(得分:1)
函数age
返回interval
数据类型。
在您的情况下:26 years 3 Mons 7 days
datetime.timedelta(9587)
您可以使用EXTRACT
只获得多年:
SELECT *,EXTRACT(YEAR FROM age(date_of_birth)) AS age
...
答案 1 :(得分:0)
我刚刚在这个页面上找到了不同的东西。虽然这个问题已有四年了,但我认为应该添加一个解决方案:您可以使用内置的timesince
Django模板过滤器来代替计算数据库中的日期差异,这样可以为您提供输出类似于PostgreSQL age()
函数的字符串输出,另请参阅https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#timesince
不确定何时添加了过滤器,它肯定在Django 1.8和1.9中可用。