mysql date数据输入的时候 如果是日月年,应该怎么才能识别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql date数据输入的时候 如果是日月年,应该怎么才能识别相关的知识,希望对你有一定的参考价值。

0 先理解下格式问题
要理解两种格式,一是mysql内部使用和存储时使用的格式,另一个是用户显示的格式;
存储格式:mysql保存日期时间值时使用的CCYY-MM-DD格式遵循ISO 8601标准;
显示格式:显示在输出界面上的格式,可以使用DATA_FORMAT()或TIME_FORMAT()函数来设置和转换;
1 转换和处理
1)提交数据,一是使用标准格式让其自动识别,二是对输入值进行格式指定和转换
insert into t (d) values('2012-01-01'); #使用默认ansi标准格式,让数据库自动识别字串为日期;
insert into t (d) values( STR_TO_DATE('2012/February/01', '%Y/%M/%d') ); #使用字符转换为日期的函数来处理自定义格式的输入值;

2)查询数据,一是不使用格式(即使用默认的CCYY-MM-DD格式),二是指定输出格式
select current_date(); #默认格式
select date_format(current_date(), ''%Y/%M/%d''); #使用自定义格式,具体参考下date_format的帮助,主要是格式控制符的使用。

2 格式化参数
DATE_FORMAT(), TIME_FORMAT(), STR_TO_DATE()这三个函数都接受格式化串作为参数来格式化日期时间

常用的格式化字符:
%Y 4位数字年份 2012
%y 2位数字年份 12
%M 完整英文月份名称,January - December
%b 月份名称前三个字母,Jan - Dec
%m 2位数字月份 01-12
%c 最小位数字月份 1-12
%d 2位数字日期 01-31
%e 最小位数字日期 1-31
%W 工作日名称 Sunday - Saturday
%r 12小时制时间,以AM或PM结尾
%T 24小时制时间
%H 24小时制小时 00-23
%i 2位数字分钟 00-59
%s 2位数字秒数 00-59
%% %文字字符
参考技术A 建议用JS日期插件解决日期输入问题,日期格式在JS中规范

oracle根据出生日期算年龄

oracle根据出生日期算年龄,凡是在10月31号之前出生的时候,比如2010年统计的时候,有个孩子是09年8月1号出生,2010年统计的时候,算2岁,如果他在09年11月1号出生的时候,2010年统计的时候,他就算1岁
凡是在10月31号之前出生的时候,比如2010年统计的时候,有个孩子是09年8月1号出生,2010年统计的时候,算1岁,如果他在09年11月1号出生的时候,2010年统计的时候,他就算0岁,意思是按10月份区分

select floor(months_between(to_date(concat(extract(year from sysdate),'-10-31'),'YYYY-MM-DD'),to_date(生日的日期,'yyyy-mm-dd'))/12) from table_name

floor 向下取整
months_between 日期相差的月份数
concat字字符串连接
extract(year from sysdate) 返回当前日期的年份
参考技术A SELECT months_between(SYSDATE,to_date(生日的列名,'yyyy-mm-dd'))/12 FROM 表名;

以上是关于mysql date数据输入的时候 如果是日月年,应该怎么才能识别的主要内容,如果未能解决你的问题,请参考以下文章

日月年字符串截取分割

sql拆分列 时间拆分 日月年

日月如梭,玩转JavaScript日期

H5新增属性02

Pandas_实现数字顺序填充指定值交替填充日期顺序填充(按日月年)

将日期转换为格式日、日月年