RYN*_*RYN 4 mysql datetime date persian-calendar
我有一个mysql表,其中包含一个date类型的列.
我要在这一栏中存储非格里高利日期(即Jalali日期).
我通过使用phpMyadmin和存储Jalali日期测试了这一点,并且没有发生错误.
将非格里高利日期存储在date类型中是一个好主意吗?
如果不; 哪个更好?将其存储为varchar或作为timestamp或其他时间戳Int?
您可以将非公历日期存储在integer数据库的字段中。
例子:
\n\nyear:1396, month:11, day:17=>13961117\xe2\x80\x8d\xe2\x80\x8d\xe2\x80\x8d\xe2\x80\x8d\xe2\x80\x8dyear:1393, month:4, day:9=>13930409通过使用它,您可以查询行以查找特定日期和<=>特定日期之前的日期,但不幸的是,您无法将它们相互比较。
将非格里高利日期存储在日期类型中是一个好主意吗?
不可以.除了一个日历系统中的某个有效日期在另一个日历中不存在之外,处理DATE类型列的函数可能无法正常工作.问题不仅仅是存储数据,还需要处理这些数据,例如将它们与之进行比较CURDATE().
将它存储为varchar或作为Int或其他什么的时间戳或时间戳?
如果选择正确的格式,请使用两位数字表示月份和年份的静态位数,字符串类型,CHAR或者没问题VARCHAR.将主题相互比较只是一个词汇比较,您仍然可以编写函数来扩展功能.
选择TIMESTAMP或DATE更改问题,因为前者代表特定时间,但后者代表日历中的特定条目.如果你想把时间放在日期旁边,它们的含义仍然不同.您应该考虑一些问题,例如夏令时变化会导致某些人更喜欢放置日历条目(DATE),有些人更喜欢从1970年1月1日开始的秒数(TIMESTAMP).例如,1393-06-30 23:30:00根据伊朗现行的政府法律,Hijri Shamsi日历中有两个时间戳.
| 归档时间: |
|
| 查看次数: |
1550 次 |
| 最近记录: |