Oracle用SQL打印日历




1.1  打印当月日历

, D, NULL)) SUN,

, D, NULL)) MON,

, D, NULL)) TUE,

, D, NULL)) WED,

, D, NULL)) THU,

, D, NULL)) FRI,

, D, NULL)) SAT

FROM (SELECT ROWNUM D,

 + TO_NUMBER(TO_CHAR(TRUNC(SYSDATE, 'MM'), 'D')) P,

TO_CHAR( + ROWNUM, 'D') DOW

FROM ALL_OBJECTS

WHERE ROWNUM <=

TO_NUMBER(TO_CHAR(LAST_DAY(TO_DATE(SYSDATE)), 'DD')))

)

ORDER BY sun NULLS FIRST;

1.2  打印年历

SELECT CASE

WHEN (NEW_YWEEK = MIN(NEW_YWEEK)

OVER(PARTITION BY MON ORDER BY NEW_YWEEK)) THEN

MON_NAME

ELSE

NULL

END AS MONTH,

NEW_YWEEK AS YWEEK,

ROW_NUMBER() OVER(PARTITION BY MON ORDER BY NEW_YWEEK) AS MWEEK,

SUM(DECODE(WDAY, '1', MDAY, NULL)) AS SUN,

SUM(DECODE(WDAY, '2', MDAY, NULL)) AS MON,

SUM(DECODE(WDAY, '3', MDAY, NULL)) AS TUE,

SUM(DECODE(WDAY, '4', MDAY, NULL)) AS WED,

SUM(DECODE(WDAY, '5', MDAY, NULL)) AS THU,

SUM(DECODE(WDAY, '6', MDAY, NULL)) AS FRI,

SUM(DECODE(WDAY, '7', MDAY, NULL)) AS SAT

FROM (SELECT DAYOFYEAR AS EVERYDAY,

TO_CHAR(DAYOFYEAR, 'mm') AS MON,

TO_CHAR(DAYOFYEAR, 'Month') AS MON_NAME,

TO_CHAR(DAYOFYEAR, 'w') AS MWEEK,

TO_CHAR(DAYOFYEAR, 'ww') AS YWEEK,

CASE

WHEN (TO_CHAR(TO_DATE(&YEAR || '0101', 'yyyymmdd'), 'd') > '1') AND

(TO_CHAR(DAYOFYEAR, 'd') <

TO_CHAR(TO_DATE(&YEAR || '0101', 'yyyymmdd'), 'd')) THEN

TO_CHAR(TO_CHAR(DAYOFYEAR, , 'fm00')

ELSE

TO_CHAR(DAYOFYEAR, 'ww')

END AS NEW_YWEEK,

TO_CHAR(DAYOFYEAR, 'd') AS WDAY,

TO_CHAR(DAYOFYEAR, 'dd') AS MDAY

 AS DAYOFYEAR

FROM DUAL

CONNECT BY LEVEL <=

TO_CHAR(TO_DATE(&YEAR || '1231', 'yyyymmdd'),

'ddd')))

GROUP BY MON, MON_NAME, NEW_YWEEK;

1.3  打印某月日历

ALTER session set nls_language='SIMPLIFIED CHINESE';

select  to_char(everyday,'ww') as week,

sum(decode(to_char(everyday,'dy'),'星期日',to_char(everyday,'dd'))) as 星期日,

sum(decode(to_char(everyday,'dy'),'星期一',to_char(everyday,'dd'))) as 星期一,

sum(decode(to_char(everyday,'dy'),'星期二',to_char(everyday,'dd'))) as 星期二,

sum(decode(to_char(everyday,'dy'),'星期三',to_char(everyday,'dd'))) as 星期三,

sum(decode(to_char(everyday,'dy'),'星期四',to_char(everyday,'dd'))) as 星期四,

sum(decode(to_char(everyday,'dy'),'星期五',to_char(everyday,'dd'))) as 星期五,

sum(decode(to_char(everyday,'dy'),'星期六',to_char(everyday,'dd'))) as 星期六

 as everyDay

from dual

)

)

group by to_char(everyday,'ww')

ORDER BY week;

select  to_char(everyday,'ww') as week,

sum(decode(to_char(everyday,'d'),'1',to_char(everyday,'dd'))) as 星期日,

sum(decode(to_char(everyday,'d'),'2',to_char(everyday,'dd'))) as 星期一,

sum(decode(to_char(everyday,'d'),'3',to_char(everyday,'dd'))) as 星期二,

sum(decode(to_char(everyday,'d'),'4',to_char(everyday,'dd'))) as 星期三,

sum(decode(to_char(everyday,'d'),'5',to_char(everyday,'dd'))) as 星期四,

sum(decode(to_char(everyday,'d'),'6',to_char(everyday,'dd'))) as 星期五,

sum(decode(to_char(everyday,'d'),'7',to_char(everyday,'dd'))) as 星期六

 as everyDay

from dual

)

)

group by to_char(everyday,'ww')

ORDER BY week;



http://jackywood.itpub.net/post/1369/127565

一条SQL语句生成年历。

  1. select case
  2. when (new_yweek = min(new_yweek)over(partition by mon order by new_yweek)) then
  3. mon_name
  4. else
  5. null
  6. end as month,
  7. new_yweek as yweek,
  8. row_number() over(partition by mon order by new_yweek) as mweek,
  9. sum(decode(wday, '1', mday, null)) as sun,
  10. sum(decode(wday, '2', mday, null)) as mon,
  11. sum(decode(wday, '3', mday, null)) as tue,
  12. sum(decode(wday, '4', mday, null)) as wed,
  13. sum(decode(wday, '5', mday, null)) as thu,
  14. sum(decode(wday, '6', mday, null)) as fri,
  15. sum(decode(wday, '7', mday, null)) as sat
  16. from (select dayofyear as everyday,
  17. to_char(dayofyear, 'mm') as mon,
  18. to_char(dayofyear, 'Month') as mon_name,
  19. to_char(dayofyear, 'w') as mweek,
  20. to_char(dayofyear, 'ww') as yweek,
  21. case
  22. when (to_char(to_date(&year || '0101', 'yyyymmdd'), 'd') > '1') and
  23. (to_char(dayofyear, 'd') <
  24. to_char(to_date(&year || '0101', 'yyyymmdd'), 'd')) then
  25. to_char(to_char(dayofyear, 'ww') + 1, 'fm00')
  26. else
  27. to_char(dayofyear, 'ww')
  28. end as new_yweek,
  29. to_char(dayofyear, 'd') as wday,
  30. to_char(dayofyear, 'dd') as mday
  31. from (select to_date(&year || '0101', 'yyyymmdd') + level - 1 as dayofyear
  32. from dual
  33. connect by level <= to_char(to_date(&year || '1231', 'yyyymmdd'),'ddd')
  34. )
  35. )
  36. group by mon, mon_name, new_yweek
  37. /

链接是作者的解读,我感觉年历的实现主要有三个步骤
1.生成一年之中所有的日期
2.在上步的基础上,得到每个日期所在周、月、年的具体信息。
3.行列转置

其中new_yweek这部分看的真是云里雾里,它主要解决Oracle to_char函数IW和WW坑爹的问题。

  1. select to_char(d,'yyyy-mm-dd'),to_char(d,'d') dayofweek,to_char(d,'WW') WW,to_char(d,'IW') IW    from (
  2. select to_date('20131229','yyyymmdd')+level-1 as d from dual connect by level<=10);
TO_CHAR(D, D WW IW           
---------- - -- --
2013-12-29 1 52 52
2013-12-30 2 52 01
2013-12-31 3 53 01
2014-01-01 4 01 01
2014-01-02 5 01 01
2014-01-03 6 01 01
2014-01-04 7 01 01
2014-01-05 1 01 01
2014-01-06 2 01 02
2014-01-07 3 01 02

已选择10行。

对比日历,发现2013年12月30,31日的IW,均划分到了2014年的第一周

MONTH  YWE MWEEK   SUN   MON   TUE   WED   THU   FRI   SAT
------ --- ----- ----- ----- ----- ----- ----- ----- -----
12月   49      1     1     2     3     4     5     6     7
       50      2     8     9    10    11    12    13    14
       51      3    15    16    17    18    19    20    21
       52      4    22    23    24    25    26    27    28
       53      5    29    30    31

1)ww的算法为每年1月1日为第一周开始,date+6为每一周结尾

  例如20050101为第一周的第一天,而第一周的最后一天为20050101+6=20050107

  公式 每周第一天 :date + 周 * 7 - 7

  每周最后一天:date + 周 * 7 - 1

2)iw的算法为星期一至星期日算一周,且每年的第一个星期一为第一周,

   例如20050101为星期六,所以用iw的算法是前年的53周,而20050103之后才是第一周的开始。

  公式 每周第一天 :next_day(date) + 周 * 7 - 7

  每周最后一天:next_day(date) + 周 * 7 - 1



按照上述算法,WW的结果相差较远,而IW比较贴近我们对于日期的认识。
但是问题是IW存在边界问题。它会认为12月30日和31日是2014年的第一周,以此统计年历,则会出现问题。所以new_yweek解决的应该是这个问题。

可以使用下面的方法解决IW边界问题。

  1. select case
  2. when (yweek = min(yweek)over(partition by mon order by yweek)) then
  3. mon_name
  4. else
  5. null
  6. end as month,
  7. yweek as yweek,
  8. row_number() over(partition by mon order by yweek) as mweek,
  9. sum(decode(wday, '1', mday, null)) as sun,
  10. sum(decode(wday, '2', mday, null)) as mon,
  11. sum(decode(wday, '3', mday, null)) as tue,
  12. sum(decode(wday, '4', mday, null)) as wed,
  13. sum(decode(wday, '5', mday, null)) as thu,
  14. sum(decode(wday, '6', mday, null)) as fri,
  15. sum(decode(wday, '7', mday, null)) as sat
  16. from (select dayofyear as everyday,
  17. to_char(dayofyear, 'mm') as mon,
  18. to_char(dayofyear, 'Month') as mon_name,
  19. to_char(dayofyear, 'w') as mweek,
  20. max(decode(to_char(dayofyear,'d'),'1',to_char(dayofyear, 'iw')+1,to_char(dayofyear, 'iw'))) over(order by dayofyear) as yweek,
  21. to_char(dayofyear, 'd') as wday,
  22. to_char(dayofyear, 'dd') as mday
  23. from (select to_date(&year || '0101', 'yyyymmdd') + level - 1 as dayofyear
  24. from dual
  25. connect by level <= to_char(to_date(&year || '1231', 'yyyymmdd'),'ddd')
  26. )
  27. )
  28. group by mon, mon_name, yweek
  29. /

解决IW边界问题:
max(decode(to_char(dayofyear,'d'),'1',to_char(dayofyear, 'iw')+1,to_char(dayofyear, 'iw'))) over(order by dayofyear) as yweek


decode部分,如果日期是周日,则将iw的值+1,以便日历对齐。
而max分析函数部分,解决类似12月30日,31日划分到下一年的问题。
这个实现存在一些问题。
如果元旦是周五,周六或者周日,例如20110101,它是周六,IW会认为这天是2010年的第五十二周。

  1. SQL> select to_char(to_date('20110101','yyyymmdd'),'IW') from dual;
  2. TO
  3. --
  4. 52

对于这个问题,我没有解决的方法,但是一个同事有另外一个方案,用自定义的周序列,使用偏移量。

  1. select case
  2. when (yweek = min(yweek)over(partition by mon order by yweek)) then
  3. mon_name
  4. else
  5. null
  6. end as month,
  7. yweek as yweek,
  8. row_number() over(partition by mon order by yweek) as mweek,
  9. sum(decode(wday, '1', mday, null)) as sun,
  10. sum(decode(wday, '2', mday, null)) as mon,
  11. sum(decode(wday, '3', mday, null)) as tue,
  12. sum(decode(wday, '4', mday, null)) as wed,
  13. sum(decode(wday, '5', mday, null)) as thu,
  14. sum(decode(wday, '6', mday, null)) as fri,
  15. sum(decode(wday, '7', mday, null)) as sat
  16. from (select dayofyear as everyday,
  17. to_char(dayofyear, 'mm') as mon,
  18. to_char(dayofyear, 'Month') as mon_name,
  19. to_char(dayofyear, 'w') as mweek,
  20. ceil(to_number(dayIndex)/7) as yweek,
  21. to_char(dayofyear, 'd') as wday,
  22. to_char(dayofyear, 'dd') as mday
  23. from (
  24. select
  25. to_date(&year || '0101', 'yyyymmdd') + level - 1 as dayofyear,
  26. to_char(s.firstday,'d')+rownum dayIndex
  27. from
  28. dual,(select to_date(&year || '0101','yyyymmdd')-1 firstday from dual) s
  29. connect by level <= to_char(to_date(&year || '1231', 'yyyymmdd'),'ddd')
  30. )
  31. )
  32. group by mon, mon_name, yweek
  33. /


    

  1. case when   (to_char(to_date(&year || '0101', 'yyyymmdd'), 'd') > '1')
  2. and
  3. (to_char(dayofyear, 'd') < to_char(to_date(&year || '0101', 'yyyymmdd'), 'd'))
  4. then
  5. to_char(to_char(dayofyear, 'ww') + 1, 'fm00')
  6. else
  7. to_char(dayofyear, 'ww')
  8. end as new_yweek


以2013年一月为例,元旦是周二(不是周日,满足了Case When的第一个条件)
6,7日是周日、周一,小于元旦的周二,所以所在周+1,那么行列转置后在日历上就下沉了一层。



1 要构造某年某月的日历,必须先知道这个月的开始时间,结束时间及天数
开始日期 例如 2006年11月
select to_date('20061101','yyyymmdd') as startDayOfMon from  dual;

结束日期 
select last_day(to_date('20061101','yyyymmdd')) as endDayOfMon from  dual;

日期区间天数
select last_day(to_date('20061101','yyyymmdd')) - to_date('20061101','yyyymmdd') +1 as DayOfMon
  from dual;

2 接下来就是需要得到开始时间到结束时间每一天的结果集
select * from (
select to_date('20061101','yyyymmdd') + level - 1 as everyDay from dual
  connect by level <= 
  (last_day(to_date('20061101','yyyymmdd')) - to_date('20061101','yyyymmdd') +1));

3 再进一步则是将该月中的日期分解成第几周,星期几。

select everyDay,to_char(everyday,'yyyy') as 年,
   to_char(everyday,'mm') as 月,
   to_char(everyday,'dd') as 日,
   to_char(everyday,'dy') as 星期几,
   lpad(to_char(everyday,'w'),6) as 该月的第几周,
   lpad(to_char(everyday,'ww'),6) as 该年的第几周
   from(select to_date('20061101','yyyymmdd') + level - 1 as everyDay from dual
  connect by level <= 
  (last_day(to_date('20061101','yyyymmdd')) - to_date('20061101','yyyymmdd') +1));

4 这个结果集求出来后,接下拉就是使用DECODE函数进行行列转换了
select everyDay,to_char(everyday,'yyyy') as 年,
   to_char(everyday,'mm') as 月,
   to_char(everyday,'dd') as 日,
   to_char(everyday,'dy') as 星期几,
   lpad(to_char(everyday,'w'),6) as 该月的第几周,
   lpad(to_char(everyday,'ww'),6) as 该年的第几周,
   lpad(decode(to_char(everyday,'dy'),'星期日',to_char(everyday,'dd')),3) as 星期日,
   lpad(decode(to_char(everyday,'dy'),'星期一',to_char(everyday,'dd')),3) as 星期一,
   lpad(decode(to_char(everyday,'dy'),'星期二',to_char(everyday,'dd')),3) as 星期二,
   lpad(decode(to_char(everyday,'dy'),'星期三',to_char(everyday,'dd')),3) as 星期三,
   lpad(decode(to_char(everyday,'dy'),'星期四',to_char(everyday,'dd')),3) as 星期四,
   lpad(decode(to_char(everyday,'dy'),'星期五',to_char(everyday,'dd')),3) as 星期五,
   lpad(decode(to_char(everyday,'dy'),'星期六',to_char(everyday,'dd')),3) as 星期六
    from(select to_date('20061101','yyyymmdd') + level - 1 as everyDay from dual
  connect by level <= 
  (last_day(to_date('20061101','yyyymmdd')) - to_date('20061101','yyyymmdd') +1));

5 再进一步就是统计汇总了,大家发现一个小问题没有?
  就是该月的第几周这里是按本月开始是星期几为开始的日期,很有意思,
  这样我们按该日是该年的第几周则是以今年开始日期是星期几为开始日期

select  to_char(everyday,'w') as week,
        sum(decode(to_char(everyday,'dy'),'星期日',to_char(everyday,'dd'))) as 星期日,
        sum(decode(to_char(everyday,'dy'),'星期一',to_char(everyday,'dd'))) as 星期一,
        sum(decode(to_char(everyday,'dy'),'星期二',to_char(everyday,'dd'))) as 星期二,
        sum(decode(to_char(everyday,'dy'),'星期三',to_char(everyday,'dd'))) as 星期三,
        sum(decode(to_char(everyday,'dy'),'星期四',to_char(everyday,'dd'))) as 星期四,
        sum(decode(to_char(everyday,'dy'),'星期五',to_char(everyday,'dd'))) as 星期五,
        sum(decode(to_char(everyday,'dy'),'星期六',to_char(everyday,'dd'))) as 星期六
    from(select to_date('20061101','yyyymmdd') + level - 1 as everyDay 
          from dual
          connect by level <= (last_day(to_date('20061101','yyyymmdd')) - to_date('20061101','yyyymmdd') +1)
        )
  group by to_char(everyday,'w');

6 以上日历基本成功,但还有一个问题,就是一周的开始时间问题

select  to_char(everyday,'ww') as week,
        sum(decode(to_char(everyday,'dy'),'星期日',to_char(everyday,'dd'))) as 星期日,
        sum(decode(to_char(everyday,'dy'),'星期一',to_char(everyday,'dd'))) as 星期一,
        sum(decode(to_char(everyday,'dy'),'星期二',to_char(everyday,'dd'))) as 星期二,
        sum(decode(to_char(everyday,'dy'),'星期三',to_char(everyday,'dd'))) as 星期三,
        sum(decode(to_char(everyday,'dy'),'星期四',to_char(everyday,'dd'))) as 星期四,
        sum(decode(to_char(everyday,'dy'),'星期五',to_char(everyday,'dd'))) as 星期五,
        sum(decode(to_char(everyday,'dy'),'星期六',to_char(everyday,'dd'))) as 星期六
    from(select to_date('20061101','yyyymmdd') + level - 1 as everyDay 
          from dual
          connect by level <= (last_day(to_date('20061101','yyyymmdd')) - to_date('20061101','yyyymmdd') +1)
        )
  group by to_char(everyday,'ww');

7  这样虽然可以解决,但还存在问题,大家可以考虑下!也可以考虑下年历怎么做!

select  ceil((to_char(everyday,'dd')+(to_char(to_date('20061101','yyyymmdd'),'d')-1))/7) as week,
        sum(decode(to_char(everyday,'dy'),'星期日',to_char(everyday,'dd'))) as 星期日,
        sum(decode(to_char(everyday,'dy'),'星期一',to_char(everyday,'dd'))) as 星期一,
        sum(decode(to_char(everyday,'dy'),'星期二',to_char(everyday,'dd'))) as 星期二,
        sum(decode(to_char(everyday,'dy'),'星期三',to_char(everyday,'dd'))) as 星期三,
        sum(decode(to_char(everyday,'dy'),'星期四',to_char(everyday,'dd'))) as 星期四,
        sum(decode(to_char(everyday,'dy'),'星期五',to_char(everyday,'dd'))) as 星期五,
        sum(decode(to_char(everyday,'dy'),'星期六',to_char(everyday,'dd'))) as 星期六
    from(select to_date('20061101','yyyymmdd') + level - 1 as everyDay 
          from dual
          connect by level <= (last_day(to_date('20061101','yyyymmdd')) - to_date('20061101','yyyymmdd') +1)
        )
  group by ceil((to_char(everyday,'dd')+(to_char(to_date('20061101','yyyymmdd'),'d')-1))/7);

以上是最终的结果。



About Me

...............................................................................................................................

● 本文整理自网络

● 本文在itpub(http://blog.itpub.net/26736162)、博客园(http://www.cnblogs.com/lhrbest)和个人微信公众号(xiaomaimiaolhr)上有同步更新

● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

● 本文博客园地址:http://www.cnblogs.com/lhrbest

● 本文pdf版及小麦苗云盘地址:http://blog.itpub.net/26736162/viewspace-1624453/

     微信群:私聊

● 联系我请加QQ好友(646634621),注明添加缘由

● 于 2017-04-28 09:00 ~ 2017-04-30 22:00 在魔都完成

● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

...............................................................................................................................

拿起手机使用微信客户端扫描下边的左边图片来关注小麦苗的微信公众号:xiaomaimiaolhr,扫描右边的二维码加入小麦苗的QQ群,学习最实用的数据库技术。

Oracle打印日历功能的更多相关文章

  1. Oracle EBS WMS功能介绍(二)

    Oracle EBS WMS功能介绍(二) (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处.否则请与本人联系,违者必究) 出货物流逻辑主要包括 1.      打包.能够进 ...

  2. Python学习实践-----打印日历

    使用python语言实现在控制台打印日历 输入年.月.日 输出对应日历,指定的日数输出为'--' 程序没有做严格的输入验证,故输入整数即可. 以下为没有优化的源码: print_calendar.py ...

  3. 调用Android自带日历功能(日历列表单、添加一个日历事件)

    调用Android自带日历功能  觉得这篇文章不错,转载过来. 转载:http://blog.csdn.net/djy1992/article/details/9948393 Android手机配备有 ...

  4. 使用java 打印日历

    package hangshu; /* * 打印从1900年到2.year年的日历 */ import java.util.Scanner; public class Calender { publi ...

  5. oracle修改审计功能

    oracle修改审计功能 如果没有关闭审计功能,审计日志文件默认保存在位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/ 关闭审计:alter system set au ...

  6. oracle导入导出功能

    1.普通版:oracle导入导出功能:导出exp 用户名/密码@SID file=f:\xx.dmp owner=用户名 导入imp 用户名/密码@SID full=y file=f:\xx.dmp ...

  7. 微信小程序:实现日历功能

    一.功能描述 实现日历功能 二. 代码实现 1. index.wxml <view class='wrap'> <view> <view class='date-show ...

  8. C++ 实现的一个打印日历程序

    C++ 实现的一个打印日历程序 说明:总共有三个文件 1.month.h 为定义函数的头文件 2.month.cpp 为函数的实现代码 3.mainprog.cpp 为主函数的实现代码 month.h ...

  9. 调用Android自带日历功能

    Android手机配备有一个内置的日历应用程序.第三方应用程序可以利用日历内容提供商接口读取用户的日历信息和安排在日历新的事件.这个日历可以直接同步用户的谷歌日历. 不幸的是,没有文档和Android ...

随机推荐

  1. BZOJ:4209: 西瓜王

    原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4209 (虽然仅仅是看在名字的份上,我们还是得说这题是一道) 绝世好题!西瓜王!西瓜王!西瓜 ...

  2. 基于Windows环境下MyEclipse10快捷键总结

    ---------------------------------------------MyEclipse 快捷键1(CTRL)----------------------------------- ...

  3. Vijos P1113 不高兴的津津【模拟】

    不高兴的津津 描述 津津上初中了.妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班.另外每周妈妈还会送她去学习朗诵.舞蹈和钢琴.但是津津如果一天上课超过八个小时就会 ...

  4. [51nod1462]树据结构

    题面: 给一颗以1为根的树. 每个点有两个权值:vi, ti,一开始全部是零. Q次操作: 读入o, u, d o = 1 对u到根上所有点的vi += d  o = 2 对u到根上所有点的ti += ...

  5. Centos7环境搭建lnmp环境

    [原创]编译安装lnmp环境 准备软件:nginx1.10.3+php-5.5.12+mariadb10.0.8(数据库在此使用的yum安装) 如果需要编译安装的可以给我留言,我后续再发布出来! 依赖 ...

  6. CentOS 6.5 编译安装 LNMP环境

    建立一个软件包目录存放 mkdir -p /usr/local/src/ 清理已经安装包 rpm -e httpd rpm -e mysql rpm -e php yum -y remove http ...

  7. Apache/Tomcat/JBOSS/Nginx区别

    先说Apache和Tomcat的区别: Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一. ...

  8. qt中moc的作用

    Qt 将源代码交给标准 C++ 编译器,如 gcc 之前,需要事先将这些扩展的语法去除掉.完成这一操作的就是 moc. moc 全称是 Meta-Object Compiler,也就是"元对 ...

  9. css3渐变之线性渐变

    css3定义了两种类型的渐变,即线性渐变和径向渐变.这里我要说的是线性渐变. 为了创建一个线性渐变,你必须至少定义两种颜色结点.颜色结点即你想要呈现平稳过渡的颜色.同时,你也可以设置一个起点和一个方向 ...

  10. 修改nopCommerce中的实体

                               对已有实体增加一个属性(对Category增加一个SomeNewProperty)   最近在研究nopcommerce,这里是对官网上文档的学习 ...