<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[那时阳光满地 - 工作]]></title>
<link>http://seamusic.cn/blog/</link>
<description><![CDATA[到处都是传奇，可不见得有这么圆满的收场。胡琴咿咿呀呀拉着，在万盏灯火的夜晚，拉过来又拉过去，说不尽的苍凉的故事——不问也罢！]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[seamusic@163.com(海风)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>那时阳光满地</title>
	<url>http://seamusic.cn/blog/images/logos.gif</url>
	<link>http://seamusic.cn/blog/</link>
	<description>那时阳光满地</description>
</image>

			<item>
			<link>http://seamusic.cn/blog/article.asp?id=469</link>
			<title><![CDATA[使用SQL语句查询每个分组的前N条记录 ]]></title>
			<author>seamusic@163.com(海风)</author>
			<category><![CDATA[工作]]></category>
			<pubDate>Wed,02 Jun 2010 22:37:23 +0800</pubDate>
			<guid>http://seamusic.cn/blog/default.asp?id=469</guid>
		<description><![CDATA[<div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code6342);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://seamusic.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code6342><br/>--&gt; 生成测试数据: #T<br/>IF OBJECT_ID(&#39;tempdb.dbo.#T&#39;) IS NOT NULL Dro&#112; TABLE #T<br/>Cr&#101;ate TABLE #T (ID VARCHAR(3),GID INT,Author VARCHAR(29),Title VARCHAR(39),Date DATETIME)<br/>Ins&#101;rt INTO #T<br/>Sel&#101;ct &#39;001&#39;,1,&#39;邹建&#39;,&#39;深入浅出SQLServer2005开发管理与应用实例&#39;,&#39;2008-05-10&#39; UNION ALL<br/>Sel&#101;ct &#39;002&#39;,1,&#39;胡百敬&#39;,&#39;SQLServer2005性能调校&#39;,&#39;2008-03-22&#39; UNION ALL<br/>Sel&#101;ct &#39;003&#39;,1,&#39;格罗夫Groff.J.R.&#39;,&#39;SQL完全手册&#39;,&#39;2009-07-01&#39; UNION ALL<br/>Sel&#101;ct &#39;004&#39;,1,&#39;KalenDelaney&#39;,&#39;SQLServer2005技术内幕存储引擎&#39;,&#39;2008-08-01&#39; UNION ALL<br/>Sel&#101;ct &#39;005&#39;,2,&#39;Alex.Kriegel.Boris.M.Trukhnov&#39;,&#39;SQL宝典&#39;,&#39;2007-10-05&#39; UNION ALL<br/>Sel&#101;ct &#39;006&#39;,2,&#39;飞思科技产品研发中心&#39;,&#39;SQLServer2000高级管理与开发&#39;,&#39;2007-09-10&#39; UNION ALL<br/>Sel&#101;ct &#39;007&#39;,2,&#39;胡百敬&#39;,&#39;SQLServer2005数据库开发详解&#39;,&#39;2008-06-15&#39; UNION ALL<br/>Sel&#101;ct &#39;008&#39;,3,&#39;陈浩奎&#39;,&#39;SQLServer2000存储过程与XML编程&#39;,&#39;2005-09-01&#39; UNION ALL<br/>Sel&#101;ct &#39;009&#39;,3,&#39;赵松涛&#39;,&#39;SQLServer2005系统管理实录&#39;,&#39;2008-10-01&#39; UNION ALL<br/>Sel&#101;ct &#39;010&#39;,3,&#39;黄占涛&#39;,&#39;SQL技术手册&#39;,&#39;2006-01-01&#39;UNION ALL<br/>Sel&#101;ct &#39;010&#39;,4,&#39;黄蛋蛋&#39;,&#39;SQL技术手册蛋蛋&#39;,&#39;2006-01-01&#39;<br/><br/><br/>--SQL查询如下:<br/><br/>--按GID分组,查每个分组中Date最新的前2条记录<br/><br/>sel&#101;ct * from #T<br/><br/>--1.字段ID唯一时:<br/>Sel&#101;ct * FROM #T AS T Wh&#101;re ID IN(Sel&#101;ct TOP 3 ID FROM #T Wh&#101;re GID=T.GID o&#114;DER BY Date DESC)<br/><br/>--2.如果ID不唯一时:<br/>Sel&#101;ct * FROM #T AS T Wh&#101;re 2&gt;(Sel&#101;ct COUNT(*) FROM #T Wh&#101;re GID=T.GID AND Date&gt;T.Date)<br/><br/>--SQL Server 2005 使用新方法<br/><br/>--3.使用ROW_NUMBER()进行排位分组<br/>Sel&#101;ct ID,GID,Author,Title,Date<br/>FROM<br/>(<br/>&nbsp;&nbsp; Sel&#101;ct rid=ROW_NUMBER() OVER(PARTITION BY GID o&#114;DER BY Date DESC),*<br/>&nbsp;&nbsp; FROM #T<br/>) AS T<br/>Wh&#101;re rid&lt;=2<br/><br/>--4.使用APPLY<br/>Sel&#101;ct DISTINCT b.*<br/>FROM #T AS a<br/>CROSS APPLY<br/>(<br/>&nbsp;&nbsp;&nbsp;&nbsp;Sel&#101;ct TOP(2) * FROM #T Wh&#101;re a.GID=GID o&#114;DER BY Date DESC<br/>) AS b<br/><br/><br/>sel&#101;ct * from #T<br/></div></div>]]></description>
		</item>
		
			<item>
			<link>http://seamusic.cn/blog/article.asp?id=467</link>
			<title><![CDATA[.NET版的SQLITE在64位系统上的问题]]></title>
			<author>seamusic@163.com(海风)</author>
			<category><![CDATA[工作]]></category>
			<pubDate>Sun,23 May 2010 18:29:13 +0800</pubDate>
			<guid>http://seamusic.cn/blog/default.asp?id=467</guid>
		<description><![CDATA[原因是如果是“所有平台”，那么CLR只会搜索针对“所有平台”的System.Data.Sqlite.dll。而如果是&#34;X86&#34;或&#34;X64&#34;,则会搜索相同平台及所有平台的版本。<br/><br/>而System.Data.Sqlite.dll本身因为使用了 Native Code, 所以不能编译成所有平台的版本。<br/><br/><br/>所以，可以自己下载源码来编译，或者直接去下载最新版的64位版本。<br/><a href="http://sourceforge.net/projects/sqlite-dotnet2/files/" target="_blank" rel="external">http://sourceforge.net/projects/sqlite-dotnet2/files/</a>]]></description>
		</item>
		
			<item>
			<link>http://seamusic.cn/blog/article.asp?id=466</link>
			<title><![CDATA[在VPS上安装SQL2005 EXPRESS]]></title>
			<author>seamusic@163.com(海风)</author>
			<category><![CDATA[工作]]></category>
			<pubDate>Sun,23 May 2010 16:37:11 +0800</pubDate>
			<guid>http://seamusic.cn/blog/default.asp?id=466</guid>
		<description><![CDATA[终于，停止了N天的VPS恢复了，但里面的东西全部都没有了，又要重新开始，对于这样的JS，我已经实在无话可说了。又要浪费我N多的时间去处理这些事情了！<br/><br/>1、SQL决定改为安装SQL EXPRESS版了，因为看起来的功能差不多，而且我只是用到很小的一部分功能而已。EXPRESS版应该已经够用了。<br/><br/>出师不利，一安装就出错了，提示“An installation package for the product Microsoft SQL Server Native Client cannot be found. Try the installation again using a valid copy of the installation package &#39;sqlncli_x64.msi&#39;”。这个问题解决办法就是，直接去控制面板那里把“SQL Server Native Client ”删除再装一次就行了。<br/><br/>官方有类似的问题解决方案，不过我试了无效：<a href="http://support.microsoft.com/kb/929667/en-us?fr=1" target="_blank" rel="external">http://support.microsoft.com/kb/929667/en-us?fr=1</a>]]></description>
		</item>
		
			<item>
			<link>http://seamusic.cn/blog/article.asp?id=465</link>
			<title><![CDATA[.NET面试知识点]]></title>
			<author>seamusic@163.com(海风)</author>
			<category><![CDATA[工作]]></category>
			<pubDate>Sat,22 May 2010 00:49:46 +0800</pubDate>
			<guid>http://seamusic.cn/blog/default.asp?id=465</guid>
		<description><![CDATA[1、如何处理并发？<br/><br/>你说的并发我碰到过的有两种，一种是应用服务器的并发（比如IIS并发）和数据库服务器的并发，前者需要通过负载均衡和多应用服务器来解决，后者也可以通过架构多数据库服务器来解决。另外一种是应用程序中数据的并发，比如A用户登陆到办公系统，B用户也登陆到办公系统，两个人对于同一条数据都有修改权限。现在假设A用户打开了修改界面（已经读取了数据库中某条具体的数据）,还没有点修改按钮；这个时候B用户也打开了修改页面，并且点了修改按钮；这个时候A用户如果再去点修改按钮，那么这个就是我说的后面一种并发类型。这种并发是我们程序中需要考虑的。常见的有三种做法，一种就是后面的那个人修改的直接把前面人修改的覆盖掉（这种是偷懒的办法，用于不是很重要的数据）；第二种处理办法是A用户点修改的时候，弹出一个对话框来，告诉用户这条记录已经被B用户修改过了，并且修改后的内容显示出来，问A用户是否继续保存（这种是比较好的解决办法，但是程序弄起来比较麻烦）；第三种就是直接报错，告诉人家该记录因为什么原因不能保存。<br/><br/>2、工厂模式与抽象工厂有什么区别？<br/>工厂方法模式：<br/>一个抽象产品类，可以派生出多个具体产品类。&nbsp;&nbsp; <br/>一个抽象工厂类，可以派生出多个具体工厂类。&nbsp;&nbsp; <br/>每个具体工厂类只能创建一个具体产品类的实例。<br/><br/>抽象工厂模式：<br/>多个抽象产品类，每个抽象产品类可以派生出多个具体产品类。&nbsp;&nbsp; <br/>一个抽象工厂类，可以派生出多个具体工厂类。&nbsp;&nbsp; <br/>每个具体工厂类可以创建多个具体产品类的实例。&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>区别：<br/>工厂方法模式只有一个抽象产品类，而抽象工厂模式有多个。&nbsp;&nbsp; <br/>工厂方法模式的具体工厂类只能创建一个具体产品类的实例，而抽象工厂模式可以创建多个。 <br/><br/><br/><br/><br/>总结，好好复习下~~学习下设计模式~这对工作多年了，.NET的比较重要。<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://seamusic.cn/blog/article.asp?id=464</link>
			<title><![CDATA[JPG图片与ZIP合并？请看过来~]]></title>
			<author>seamusic@163.com(海风)</author>
			<category><![CDATA[工作]]></category>
			<pubDate>Wed,19 May 2010 03:18:06 +0800</pubDate>
			<guid>http://seamusic.cn/blog/default.asp?id=464</guid>
		<description><![CDATA[揭密：把jpg图片文件和rar或者zip文件合并<br/><br/>1.将需要合并的图片文件和rar文件保存到一个文件夹里面。为了便于说明，假设图片文件名为“1.jpg&#34;,再假设rar压缩文件名为&#34;2.rar&#34;，然后假设两个文件都放到d盘根目录下。<br/>2.打开windows桌面左下角的“开始”——“运行”，输入“cmd”，进入dos页面，以1所提到的假设为例，输入&#34;d:&#34;，然后回车，进入d盘根目录<br/>3.接着输入以下命令：<br/>copy/b&nbsp;&nbsp;1.jpg + 2.rar&nbsp;&nbsp;3.jpg<br/>命令输入完毕后回车，在d盘根目录下就会有一个3.jpg文件。这个文件就是合并后的文件，平时显示为一个图片，可正常观看图片。把该图片后缀名改为.rar，就可以得到你所要的压缩包。如果还想看图片，那么再把后缀名改为.jpg 即可。<br/>怎么样，简单吧？这种方法不需要网上说的什么合并软件，只用一条简单的dos命令就实现了<br/><br/>注：打命令时注意有空格,jpg/gif文件必需放在rar的前面，并且生成的文件也必需是jpg或gif。<br/><br/><br/><br/>详细想研究的，就下载下面这张图片，改后缀名，用WINRAR打开就知道了……<br/>正常来说，它就是一张图片~<br/><img src="http://seamusic.cn/blog/download.asp?id=3" border="0" alt=""/><br/>]]></description>
		</item>
		
			<item>
			<link>http://seamusic.cn/blog/article.asp?id=462</link>
			<title><![CDATA[关于PHP的一些问题]]></title>
			<author>seamusic@163.com(海风)</author>
			<category><![CDATA[工作]]></category>
			<pubDate>Sun,16 May 2010 16:52:52 +0800</pubDate>
			<guid>http://seamusic.cn/blog/default.asp?id=462</guid>
		<description><![CDATA[问题不少：<br/><br/>1、DEDECMS登陆时提示验证码不正确；WORDPRESS登陆时正常，但无法进入后台；<br/><br/>查看PHP.INI 有：session.save_path = /tmp ，这个目录本来应该是c:\tem的，但我的系统中没有，新建了一个……<br/><br/>另，依然无法广告，真是火大了，靠！！<br/>最后，直接在网站的目录下，加用户：IUSER_机器名,IWAM_机器名，默认权限就行了……<br/><br/>适用类似无法登录后台：如DEDECMS正常登录后台，但又跳到登录界面的情况，或DEDECMS的验证码不正确等……<br/><br/>需要注意的是，我的DEDECMS在服务器那里是可以正常登录的，只是在其它机器无法登录！<br/>而且，用DEDECMS的权限检查是通过的。<br/><br/>2、修改php.ini 中的 extension_dir = &#34;C:\php\ext&#34;<br/>这个一定要改，不然有问题的。]]></description>
		</item>
		
			<item>
			<link>http://seamusic.cn/blog/article.asp?id=461</link>
			<title><![CDATA[关于MYSQL编码转换]]></title>
			<author>seamusic@163.com(海风)</author>
			<category><![CDATA[工作]]></category>
			<pubDate>Sun,16 May 2010 12:33:36 +0800</pubDate>
			<guid>http://seamusic.cn/blog/default.asp?id=461</guid>
		<description><![CDATA[很简单适用于各种码之间的转换，这里以GBK转UTF8为例。<br/>假设 有一个数据库名为test，中文设定为GBK，欲转换为UTF8。<br/>先使用如下命令：<br/>mysqldump -uroot -pxxxxxxx test&gt;test.sql<br/>这里使用了root账号，密码为xxxxxxx，使用者可替换自己使用的账号密码。<br/>然后使用文本编辑器打开test.sql，查找“DEFAULT CHARSET=gbk”，替换为“DEFAULT CHARSET=utf8”.<br/>然后保存。<br/>请注意文本编辑器要将保存的文件保存为相应的格式，否则可能出问题。<br/>然后建立一个新数据库testnew，字符集使用utf8。<br/>使用如下命令：<br/>mysql -uroot -pxxxxxx testnew&lt;test.sql<br/>转换完成。<br/><br/>需要注意的是：mysqldump 是在MYSQL安装服务的BIN文件夹下~]]></description>
		</item>
		
			<item>
			<link>http://seamusic.cn/blog/article.asp?id=460</link>
			<title><![CDATA[IIS6中以FASTCGI的方式安装PHP的一些问题]]></title>
			<author>seamusic@163.com(海风)</author>
			<category><![CDATA[工作]]></category>
			<pubDate>Sat,15 May 2010 23:48:41 +0800</pubDate>
			<guid>http://seamusic.cn/blog/default.asp?id=460</guid>
		<description><![CDATA[1、PHP建议使用非线性安全那个版本的……我也建议直接下载压缩包，自己来配置。如果直接是下载那个安装版也行，但出现了问题，我不知道如何解决……还是这个比较方便。<br/><br/>无法加载 mysql 扩展，请检查您的 PHP 配置<br/><br/>2、如果出现无法加载MYSQL扩展时，注意：要加载mbstring，把PHP.INI的权限设成EVERYONE可读。<br/><br/>似乎还没解决，继续：<br/><br/>将PHP.INI-DIST更名为PHP.INI，并编辑C:\PHP\PHP.INI文件：<br/>找到extension_dir = &#34;./&#34;<br/>更改为extension_dir = &#34;C:\php\ext&#34;<br/>现在是最重要的步骤，请注意：复制C:\PHP\libmysql.dll至C:\PHP\ext目录下,用来支持MYSQL扩展库<br/>编辑C:\PHP\PHP.INI找到;extension=php_mbstring.dll，去掉前面的分号&#34;;&#34;<br/><br/>出现这个问题时：<br/>Cannot load mcrypt extension. Please check your PHP configuration.<br/><br/>把语言改为中文就没有出现了，不知为何。]]></description>
		</item>
		
			<item>
			<link>http://seamusic.cn/blog/article.asp?id=459</link>
			<title><![CDATA[今天买了一个VPS，美国的]]></title>
			<author>seamusic@163.com(海风)</author>
			<category><![CDATA[工作]]></category>
			<pubDate>Sat,15 May 2010 03:31:21 +0800</pubDate>
			<guid>http://seamusic.cn/blog/default.asp?id=459</guid>
		<description><![CDATA[以后就出国了，不要再受气了……<br/><br/>不过问题是，好像挺慢的~~不知怎么回事。<br/><br/>下面，就开始了我的VPS安装之旅~~其实，就和一台新机安装没什么区别！<br/><br/>1、安装.NET 3.5<br/>2、安装SQL2005<br/>3、安装PHP<br/>4、安装MYSQL<br/>5、设置IIS]]></description>
		</item>
		
			<item>
			<link>http://seamusic.cn/blog/article.asp?id=458</link>
			<title><![CDATA[sqlite时间函数及时间处理]]></title>
			<author>seamusic@163.com(海风)</author>
			<category><![CDATA[工作]]></category>
			<pubDate>Wed,12 May 2010 16:05:28 +0800</pubDate>
			<guid>http://seamusic.cn/blog/default.asp?id=458</guid>
		<description><![CDATA[sqlite时间函数及时间处理(转自： <a href="http://blog.sina.com.cn/s/blog_49d619a30100a6zx.html" target="_blank" rel="external">http://blog.sina.com.cn/s/blog_49d619a30100a6zx.html</a>)<br/>SQLite分页显示：Sel&#101;ct * From news o&#114;der by id desc Limit 10 Offset 10<br/><br/>SQLite 包括以下五个时间函数：<br/><br/>date(日期时间字符串, 修正符, 修正符, ……)<br/>time(日期时间字符串, 修正符, 修正符, ……)<br/>datetime(日期时间字符串, 修正符, 修正符, ……)<br/>julianday(日期时间字符串, 修正符, 修正符, ……)<br/>strftime(日期时间格式, 日期时间字符串, 修正符, 修正符, ……)<br/><br/>上述五个函数需要一个日期时间字符串做参数，后面可以跟零到多个修正符参数。而 strftime() 函数还需要一个日期时间格式字符串做第一个参数。<br/><br/>date() 函数返回一个以 “YYYY-MM-DD” 为格式的日期；<br/>time() 函数返回一个以 “YYYY-MM-DD HH:MM:SS” 为格式的日期时间；<br/>julianday() 函数返回一个天数，从格林威治时间公元前4714年11月24号开始算起；<br/>strftime() 函数返回一个经过格式话的日期时间，它可以用下面的符号对日期和时间进行格式化：<br/><br/>%d 一月中的第几天 01-31<br/>%f 小数形式的秒，SS.SSSS<br/>%H 小时 00-24<br/>%j 一年中的第几天 01-366<br/>%J Julian Day Numbers<br/>%m 月份 01-12<br/>%M 分钟 00-59<br/>%s 从 1970-01-01日开始计算的秒数<br/>%S 秒 00-59<br/>%w 星期，0-6，0是星期天<br/>%W 一年中的第几周 00-53<br/>%Y 年份 0000-9999<br/>%% % 百分号<br/><br/>其他四个函数都可以用 strftime() 函数来表示：<br/><br/>date(…)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp; strftime(“%Y-%m-%d”,…)<br/>time(…)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp; strftime(“%H:%M:%S”,…)<br/>datetime(…)&nbsp;&nbsp;&nbsp;&nbsp;-&gt;&nbsp;&nbsp; strftime(“%Y-%m-%d %H:%M:%S”,…)<br/>julianday(…)&nbsp;&nbsp; -&gt;&nbsp;&nbsp; strftime(“%J”,…)<br/><br/>日期时间字符串可以用以下几种格式：<br/><br/>YYYY-MM-DD<br/>YYYY-MM-DD HH:MM<br/>YYYY-MM-DD HH:MM:SS<br/>YYYY-MM-DD HH:MM:SS.SSS<br/>YYYY-MM-DDTHH:MM<br/>YYYY-MM-DDTHH:MM:SS<br/>YYYY-MM-DDTHH:MM:SS.SSS<br/>HH:MM<br/>HH:MM:SS<br/>HH:MM:SS.SSS<br/>now<br/>DDDD.DDDD<br/><br/>在第五种到第七种格式中的“T”是一个分割日期和时间的字符；第八种到第十种格式只代表2000-01-01日的时间，第十一种格式的’now’表示返回一个当前的日期和时间，使用格林威治时间(UTC）；第十二种格式表示一个 Julian Day Numbers。<br/><br/>修正符<br/><br/>日期和时间可以使用下面的修正符来更改日期或时间：<br/><br/>1. NNN days<br/>2. NNN hours<br/>3. NNN minutes<br/>4. NNN.NNNN seconds<br/>5. NNN months<br/>6. NNN years<br/>7. start of month<br/>8. start of year<br/>9. start of week<br/>10.start of day<br/>11.weekday N<br/>12.unixepoch<br/>13.localtime<br/>14.utc<br/><br/>前六个修正符就是简单的增加指定数值的时间和日期；第七到第十个修正符表示返回当前日期的开始；第十一个修正符表示返回下一个星期是N的日期和时间；第十二个修正符表示返回从1970-01-01开始算起的秒数；第十三个修正符表示返回本地时间。<br/><br/>下面举一些例子：<br/><br/>计算机当前时间<br/>Sel&#101;ct date(‘now’)<br/><br/>计算机当前月份的最后一天<br/>Sel&#101;ct date(‘now’,’start of month’,’+1 month’,’-1 day’)<br/><br/>计算UNIX 时间戳1092941466表示的日期和时间<br/>Sel&#101;ct datetime(‘1092941466’,’unixepoch’)<br/><br/>计算 UNIX 时间戳1092941466 表示的本地日期和时间<br/>Sel&#101;ct datetime(‘1092941466’,’unixepoch’,’localtime’)<br/><br/>计算机当前UNIX 时间戳<br/>Sel&#101;ct strftime(‘%s’,’now’)<br/><br/>两个日期之间相差多少天<br/>Sel&#101;ct jolianday(‘now’)-jolianday(‘1981-12-23’)<br/><br/>两个日期时间之间相差多少秒<br/>Sel&#101;ct julianday(&#39;now&#39;)*86400 - julianday(&#39;2004-01-01 02:34:56&#39;)*86400<br/><br/>计算今年十月份第一个星期二的日期<br/>Sel&#101;ct date(&#39;now&#39;,&#39;start of year&#39;,&#39;+9 months&#39;,&#39;weekday 2&#39;);<br/><br/>得到年<br/>strftime(‘%y’,&#39;2008-4-28&#39;)<br/><br/>得到月<br/>strftime(‘%m’,&#39;2008-4-28&#39;)<br/><br/>同样,我们也可以通过strftime来得到其它所要的信息,但是要记得,给时间加引号<br/><br/>例1.<br/>sel&#101;ct datetime(&#39;now&#39;);<br/>结果：2006-10-17 12:55:54<br/><br/>例2.<br/>sel&#101;ct datetime(&#39;2006-10-17&#39;);<br/>结果：2006-10-17 12:00:00<br/><br/>例3.<br/>sel&#101;ct datetime(&#39;2006-10-17 00:20:00&#39;,&#39;+1 hour&#39;,&#39;-12 minute&#39;);<br/>结果：2006-10-17 01:08:00<br/><br/>例4.<br/>sel&#101;ct date(&#39;2006-10-17&#39;,&#39;+1 day&#39;,&#39;+1 year&#39;);<br/>结果：2007-10-18<br/><br/>例5.<br/>sel&#101;ct datetime(&#39;now&#39;,&#39;start of year&#39;);<br/>结果：2006-01-01 00:00:00<br/><br/>例6.<br/>sel&#101;ct datetime(&#39;now&#39;,&#39;start of month&#39;);<br/>结果：2006-10-01 00:00:00<br/><br/>例7.<br/>sel&#101;ct datetime(&#39;now&#39;,&#39;start of day&#39;);<br/>结果：2006-10-17 00:00:00<br/><br/>例8.<br/>sel&#101;ct datetime(&#39;now&#39;,&#39;+10 hour&#39;,&#39;start of day&#39;,&#39;+10 hour&#39;);<br/>结果：2006-10-17 10:00:00<br/><br/>例9.<br/>sel&#101;ct datetime(&#39;now&#39;,&#39;localtime&#39;);<br/>结果：2006-10-17 21:21:47<br/><br/>例10.<br/>sel&#101;ct datetime(&#39;now&#39;,&#39;+8 hour&#39;);<br/>结果：2006-10-17 21:24:45<br/><br/>例3中的+1 hour和-12 minute表示可以在基本时间上（datetime函数的第一个参数）增加或减少一定时间。<br/><br/>例5中的start of year表示一年开始的时间。<br/><br/>从例8可以看出，尽管第2个参数加上了10个小时，但是却被第3个参数“start of day”把时间归零到00:00:00，随后的第4个参数在00:00:00<br/>的基础上把时间增加了10个小时变成了10:00:00。<br/><br/>例9把格林威治时区转换成本地时区。<br/><br/>例10把格林威治时区转换成东八区。<br/><br/>strftime()函数可以把YYYY-MM-DD HH:MM:SS格式的日期字符串转换成其它形式的字符串。strftime()的语法是strftime(格式, 日期/时间, 修正符, 修正符, ...)<br/><br/>它可以用以下的符号对日期和时间进行格式化：<br/><br/>%d 月份, 01-31<br/>%f 小数形式的秒，SS.SSS<br/>%H 小时, 00-23<br/>%j 算出某一天是该年的第几天，001-366<br/>%m 月份，00-12<br/>%M 分钟, 00-59<br/>%s 从1970年1月1日到现在的秒数<br/>%S 秒, 00-59<br/>%w 星期, 0-6 (0是星期天)<br/>%W 算出某一天属于该年的第几周, 01-53<br/>%Y 年, YYYY<br/>%% 百分号<br/><br/>strftime()的用法举例如下：<br/>例11.<br/>sel&#101;ct strftime(&#39;%Y.%m.%d %H:%M:%S&#39;,&#39;now&#39;,&#39;localtime&#39;);<br/>结果：2006.10.17 21:41:09<br/><br/>例11用圆点作为日期的分隔附，并把时间转换为当地的时区的时间]]></description>
		</item>
		
</channel>
</rss>
