一、怎樣在thinkphp 查詢語句中將時間戳格式轉化為年月日格式,然后再作
使用where方法where方法支持時間比較,例如:// 大于某個時間where('create_time','> time','2016-1-1');// 小于某個時間where('create_time','<= time','2016-1-1');// 時間區間查詢where('create_time','between time',['2015-1-1','2016-1-1']);第三個參數可以傳入任何有效的時間表達式,會自動識別你的時間字段類型,支持的時間類型包括timestamps、datetime、date和int。
使用whereTime方法whereTime方法提供了日期和時間字段的快捷查詢,示例如下:// 大于某個時間db('user')->whereTime('birthday', '>=', '1970-10-1')->select();// 小于某個時間db('user')->whereTime('birthday', '<', '2000-10-1')->select();// 時間區間查詢db('user')->whereTime('birthday', 'between', ['1970-10-1', '2000-10-1'])->select();// 不在某個時間區間db('user')->whereTime('birthday', 'not between', ['1970-10-1', '2000-10-1'])->select();時間表達式還提供了更方便的時間表達式查詢,例如:// 獲取今天的博客db('blog')->whereTime('create_time', 'today')->select();// 獲取昨天的博客db('blog')->whereTime('create_time', 'yesterday')->select();// 獲取本周的博客db('blog')->whereTime('create_time', 'week')->select(); // 獲取上周的博客db('blog')->whereTime('create_time', 'last week')->select(); // 獲取本月的博客db('blog')->whereTime('create_time', 'month')->select(); // 獲取上月的博客db('blog')->whereTime('create_time', 'last month')->select(); // 獲取今年的博客db('blog')->whereTime('create_time', 'year')->select(); // 獲取去年的博客db('blog')->whereTime('create_time', 'last year')->select(); 如果查詢當天、本周、本月和今年的時間,還可以簡化為:// 獲取今天的博客db('blog')->whereTime('create_time', 'd')->select();// 獲取本周的博客db('blog')->whereTime('create_time', 'w')->select(); // 獲取本月的博客db('blog')->whereTime('create_time', 'm')->select(); // 獲取今年的博客db('blog')->whereTime('create_time', 'y')->select(); V5.0.5+版本開始,還可以使用下面的方式進行時間查詢// 查詢兩個小時內的博客db('blog')->whereTime('create_time','-2 hours')->select();這些在開發手冊中都可以找到的。希望可以幫到你。
二、SQL語句中條件為日期時間型的查詢表達式怎么寫
1.直接用字符串可自動轉換為datetime; 2.先轉換為Datetime再與字段比較。
不知道易語言中字符串連接用什么符號,如果是加號,這么寫: 臨時記錄集.打開 ("select 日記標題 from 日記表 where 日記日期= #" + 日記日期1 +"# ", #SQL語句) 查詢主要用到SELECT,下面舉例說明SELECT語句在不同情況下的使用。 例1 一般精確查詢(當字段類型是字符型時,字段值需要加單引號): sql="select * from 數據表 where 字段名=字段值 order by 字段名 [desc]" 例2 字符串模糊比較: sql="select * from 數據表 where 字段名 like '%字段值%' order by 字段名 [desc]" 例3 最多僅選出前n項符合條件的結果: sql="select top 10 * from 數據表 where 字段名 order by 字段名 [desc]" 例4 在集合中查找(in的括號中也可以是一個SELECT語句): sql="select * from 數據表 where 字段名 in ('值1','值2','值3')" 例5 范圍查找: sql="select * from 數據表 where 字段名 between 值1 and 值2" 例6 使用別名: sql = "SELECT 字段1 AS 學號, 字段2 AS 姓名 FROM 數據表。
三、pl/sql 中查詢時間段語句
曾經遇到這樣的情況,在數據庫的Meeting表中有PublishTime (DateTime,8)字段,用來存儲一個開會時間,在存入時由于要指明開會具體時間,故格式為yyyy-mm-dd hh:mm:ss,而我們查詢時是通過yyyy-mm-dd來進行的,即查詢某一天的所有會議信息,這樣如果通過select * from Meeting where PublishTime=@PublishTime (參數@PublishTime為yyyy-mm-dd格式)語句進行查詢將無法得到正確結果,比如我們要查詢2004年12月1日的會議信息,在輸入2004-12-01時就不能得到查詢結果,而這種查詢又不能要求輸入具體的hh:mm:ss. 此時我們需要使用convert函數,它可以將一種數據類型的表達式轉換為另一種數據類型的表達式.此處我們先將數據庫內的datetime類型轉換為char類型,由于輸入的參數是10位的,所以寫成 select * from Meeting where convert(varchar(10),PublishTime,121))=@PublishTime,這樣在查詢時數據庫得到參數后先自動將數據庫內的信息轉換為yyyy-mm-dd格式的10位字符,只要與參數相同即可返回查詢結果.而convert中的121是指將datetime類型轉換為char類型時獲得包括世紀位數的4位年份。