【SQL】SQLite strftime()函数日期日间格式化 计算员工年龄
根据出生日期计算出员工的年龄:
strftime('{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}Y','now')-strftime('{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}Y',出生日期) +1
SELECT 雇员ID, 职务, cast(strftime('{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}Y','now') as int)-cast(strftime('{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}Y',出生日期) as int)+1 AS 年龄 FROM 雇员
strftime()函数可以把YYYY-MM-DD HH:MM:SS格式的日期字符串转换成其它形式的字符串。
strftime()的语法是strftime(格式, 日期/时间, 修正符, 修正符, ...)
它可以用以下的符号对日期和时间进行格式化:
{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}d 日期, 01-31
{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}f 小数形式的秒,SS.SSS
{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}H 小时, 00-23
{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}j 算出某一天是该年的第几天,001-366
{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}m 月份,00-12
{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}M 分钟, 00-59
{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}s 从1970年1月1日到现在的秒数
{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}S 秒, 00-59
{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}w 星期, 0-6 (0是星期天)
{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}W 算出某一天属于该年的第几周, 01-53
{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}Y 年, YYYY
{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed} 百分号
strftime()的用法举例如下:
select strftime('{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}Y.{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}m.{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}d {762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}H:{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}M:{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}S','now','localtime');
结果:2006.10.17 21:41:09
其实更好的用法是这样的,比如统,本月或本年的支出:
select strftime('{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}Y-{762543b0bd26c03e246ab03142f632f804e6711be7925c5ff269e230a03d75ed}m',日期) as 月份,sum(支出) as 月支出 from 流水帐 group by 月份;
共有 0 条评论