数据库数据比大小

bleach001 2016-09-17 03:10:05
数据库内容
最小年龄 最大年龄 单位(岁,天,周,月,年)
1 10 天
11 20 月
20 80 岁

我想求出一个年龄段最小到最大应该是:1天-80岁, 这个范围 请教怎么做呢?
...全文
729 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bleach001 2016-09-19
  • 打赏
  • 举报
回复
引用 8 楼 yenange 的回复:
自找麻烦, 数据库表里弄一个字段 birthday (出生日期)就好了, 按 birthday 来排序就是
这个不是存储具体的日期的,是一个保险的库, 例如:旅游险 保险期:1天 2天 3天 适用年龄:1天-10岁 1月-10岁 1周-10月 但是我在列表里需要展示的信息就是按照最大最小的显示,就像这个我在列表简介里面写:保险周期1天-3天 投保适用年龄段:1天-10岁,数据库当时是这样设计的
dongsheng10101 2016-09-18
  • 打赏
  • 举报
回复
引用 8 楼 yenange 的回复:
自找麻烦, 数据库表里弄一个字段 birthday (出生日期)就好了, 按 birthday 来排序就是
+1 数据库结构设计很重要啊, 不能图一时方便,要考虑你存的这些数据有什么用,拉报表时是否方便等等。
Ltr2011 2016-09-18
  • 打赏
  • 举报
回复
SELECT MIN(minDay)-MAX(maxDay)/365 FROM ( SELECT CASE WHEN '天' THEN 最小年龄 WHEN '月' THEN 最小年龄*30 WHEN '年' THEN 最小年龄*365 END minDay ,CASE WHEN '天' THEN 最大年龄 WHEN '月' THEN 最大年龄*30 WHEN '年' THEN 最大年龄*365 END maxDay FROM table1 ) a 思路:先把单位都转换为天,然后 求出最大天和最小天,然后 最小天-最大天/365 具体语句,还需调整
吉普赛的歌 版主 2016-09-18
  • 打赏
  • 举报
回复
自找麻烦, 数据库表里弄一个字段 birthday (出生日期)就好了, 按 birthday 来排序就是
薛定谔的DBA 2016-09-18
  • 打赏
  • 举报
回复
基本考虑这个就行了,自然语言如下: 最小年龄< 80岁 and 最大年龄 <80岁 用case when 判断转换比较吧
AAACCCEEEFFFA 2016-09-17
  • 打赏
  • 举报
回复
首先你的单位是没有优先级的,所有排序必须自己做个简单处理 除非你的单位存就存固定值:1就代表天,2就代表周
bleach001 2016-09-17
  • 打赏
  • 举报
回复
CASE ‘单位’ WHEN '天' THEN 1 WHEN '月' THEN 2 WHEN '岁' THEN 3 先根据这个排序然后从结果集里面运算,根据order by 算是实现了,现在做的是根据一条一条数据处理了。挺笨的方法,谢谢大家!!! 先不结贴,期待更好的办法
中国风 2016-09-17
  • 打赏
  • 举报
回复
1天~80岁
-------这样的条件不可换算,不能这样用

0~80岁,你查看条件范围要这样用

或你自定义固定的算法,1岁=12月=12*4周=12*4*7天,没法精确
天~岁--1年有闰年之类的判断,2月有28/29天
中国风 2016-09-17
  • 打赏
  • 举报
回复
从小到大判断可以,你的范围不可重复 比如你的10天,已满足周如:1周3天
中国风 2016-09-17
  • 打赏
  • 举报
回复
就按你现在的方法取范围,从大到小,不是从小到大
bleach001 2016-09-17
  • 打赏
  • 举报
回复
现在的思路是不考虑转换问题,按照单位大小 天 <周< 月< 年(岁) 但是不知道怎么做··

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧