日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
利用SQL計(jì)算生日所屬的星座

中午正好吃完飯,休息,看到QQ群里面發(fā)了一個(gè)問題,說給你一個(gè)沒有年份的日期,算出這個(gè)日期所屬的星座;起初剛開始的第一個(gè)想法就是取星座的開始和起始時(shí)間來做區(qū)間的比對,得到所在區(qū)間,就知道星座了!但后來想想,除了時(shí)間區(qū)間的比對,有沒有其它的方法?

創(chuàng)新互聯(lián)公司:公司2013年成立為各行業(yè)開拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為上千家公司企業(yè)提供了專業(yè)的網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、網(wǎng)頁設(shè)計(jì)和網(wǎng)站推廣服務(wù), 按需定制設(shè)計(jì)由設(shè)計(jì)師親自精心設(shè)計(jì),設(shè)計(jì)的效果完全按照客戶的要求,并適當(dāng)?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對手,根據(jù)客戶的實(shí)際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。

想來想去,試著用數(shù)字做比較看看(最后寫完才覺得這個(gè)本質(zhì)上和日期做比對沒有什么區(qū)別);因?yàn)樾亲臅r(shí)間區(qū)間段是固定的,不會有重復(fù)的,那么我可以把時(shí)間轉(zhuǎn)換成數(shù)字,例如水瓶座是1/20到2/18,那我可以轉(zhuǎn)換成120到218,但隨之而來的就有一個(gè)問題了,例如今天這個(gè)日期,3月4號,由于轉(zhuǎn)換成數(shù)字后會變成34(應(yīng)該是304),中間少了個(gè)0,怎么都找不到區(qū)間,總是計(jì)算不對,最后只能改變一下將時(shí)間轉(zhuǎn)換為數(shù)字的方法了!

 
 
 
  1. SELECT @NowDate = (CAST(MONTH(@Birthday) AS VARCHAR(10)) + CAST((CASE WHEN DAY(@Bir  
  2. thday) < 10  THEN '0' + CAST(DAY(@Birthday) AS VARCHAR(10)) ELSE CAST(DAY(@Birthday)   
  3. AS VARCHAR(10)) END) AS VARCHAR(10))); 

這個(gè)計(jì)算星座的方法,最麻煩的就是在前期的日期轉(zhuǎn)換上,時(shí)間轉(zhuǎn)好了,其它的就好辦了,做數(shù)字區(qū)間的對比吧,就能得到你想要的星座了!

 
 
 
  1. /*    
  2.  星座     日期(公歷)    英文名     
  3.  魔羯座 (12/22 - 01/19) Capricorn  
  4.  水瓶座 (01/20 - 02/18) Aquarius     
  5.  雙魚座 (02/19 - 03/20) Pisces     
  6.  牡羊座 (03/21 - 04/20) Aries     
  7.  金牛座 (04/21 - 05/20) Taurus     
  8.  雙子座 (05/21 - 06/21) Gemini     
  9.  巨蟹座 (06/22 - 07/22) Cancer     
  10.  獅子座 (07/23 - 08/22) Leo     
  11.  處女座 (08/23 - 09/22) Virgo     
  12.  天秤座 (09/23 - 10/22) Libra     
  13.  天蝎座 (10/23 - 11/21) Scorpio     
  14.  射手座 (11/22 - 12/21) Sagittarius    
  15. */    
  16.  DECLARE @TABLE TABLE   
  17.  (    
  18.      name_zh VARCHAR(128),    
  19.      name_en VARCHAR(128),    
  20.      s_time INT,    
  21.      o_time INT   
  22.  );    
  23.  DECLARE @NowDate INT;    
  24.  DECLARE @Birthday DATETIME;    
  25.  SET @Birthday = GETDATE();    
  26.  SELECT @NowDate = (CAST(MONTH(@Birthday) AS VARCHAR(10)) + CAST((CASE WHEN DAY(@Birthday) < 10  THEN '0' + CAST(DAY(@Birthday) AS VARCHAR(10)) ELSE CAST(DAY(@Birthday) AS VARCHAR(10)) END) AS VARCHAR(10)));    
  27.  INSERT INTO    
  28.      @TABLE   
  29.  VALUES   
  30.      ('魔羯座' ,'Capricorn' ,1222 ,119),    
  31.      ('水瓶座' ,'Aquarius' ,120 ,218),    
  32.      ('雙魚座' ,'Pisces' ,219 ,320),    
  33.      ('牡羊座' ,'Aries' ,321 ,420),    
  34.      ('金牛座' ,'Taurus' ,421 ,520),    
  35.      ('雙子座' ,'Gemini' ,521 ,621),    
  36.      ('巨蟹座' ,'Cancer' ,622 ,722),    
  37.      ('獅子座' ,'Leo' ,723 ,822),    
  38.      ('處女座' ,'Virgo' ,823 ,922),    
  39.      ('天秤座' ,'Libra' ,923 ,1022),    
  40.      ('天蝎座' ,'Scorpio' ,1023 ,1121),    
  41.      ('射手座' ,'Sagittarius' ,1122 ,1221);    
  42.  SELECT     
  43.      name_zh,    
  44.      name_en,    
  45.      s_time,    
  46.      o_time    
  47.  FROM    
  48.      @TABLE    
  49.  WHERE    
  50.      @NowDate BETWEEN s_time AND o_time;
      

這個(gè)方法沒有過細(xì)的去驗(yàn)證,可能會存在Bug或者性能上的損失,以后有時(shí)間會在進(jìn)一步改寫!

【編輯推薦】

  1. 如何讓微軟認(rèn)識閏年的2月29日
  2. 查詢表結(jié)構(gòu)的SQL語句
  3. 使用SQL語句查詢時(shí)間段
  4. 巧用SQL語句刪除重復(fù)記錄
  5. 判斷字段是否存在的SQL語句寫法

網(wǎng)站欄目:利用SQL計(jì)算生日所屬的星座
文章鏈接:http://www.dlmjj.cn/article/dpcoggh.html