strftime()函数可以把yyyy-mm-dd hh:mm:ss格式的日期字符串转换成其它形式的字符串。
strftime()的语法是strftime(格式, 日期/时间, 修正符, 修正符, ...)
它可以用以下的符号对日期和时间进行格式化:
- %a - 简写的星期几
- %a - 完整的星期几
- %b - 缩写的月份名称
- %b - 完整的月份名称
- %c - 首选日期和时间表示
- %c - 世纪值(年份除以100,范围从00到99)
- %d - 该月的第几天(01?31)
- %d - 类似 %m/%d/%y
- %e - 该月的一天(1?31)
- %g - 类似于%g,但是没有世纪
- %g - 对应于iso周数4位数的年份(参见%v)
- %h - 类似于 %b
- %h - 小时,使用24小时制(00?23)
- %i - 小时,使用12小时制(01?12)
- %j - 一年中的哪一天(001?366)
- %m - 月份(01?12)
- %m - 分钟
- %n - 换行符
- %p - 根据给定的时间值am或pm
- %r - 时间在上午和下午的符号:am/pm
- %r - time in 24 hour notation
- %s - 秒
- %t - 制表符
- %t - 当前时间,等于 %h:%m:%s
- %u - 工作日为数字(1到7),星期一= 1。警告:在sun solaris上周日=1
- %u - 当年的周数,第一个星期日作为第一周的第一天
- %v - 本年度iso 8601的周数(01到53),其中,第1周是在本年度至少4天的第一个星期,星期一作为一周的第一天
- %w - 当年的周数,与第一个星期一作为第一周的第一天
- %w - 星期为一个小数,星期日=0
- %x - 没有时间的日期表示
- %x - 无日期首选的时间表示
- %y - 一年无世纪(范围从00到99)
- %y - 今年,包括世纪
- %z or %z - 时区或名称或缩写
- %% -文字%字符
strftime()的用法举例如下:
select strftime('%y.%m.%d %h:%m:%s','now','localtime');
结果:2006.10.17 21:41:09
其实更好的用法是这样的,比如统,本月或本年的支出:
select strftime('%y-%m',日期) as 月份,sum(支出) as 月支出 from 流水帐 group by 月份;