SQL 進階(7) Date 函數,sqldate函數
SQL 進階(7) Date 函數SQL 日期 當我們處理日期時,最難的任務恐怕是確保所插入的日期的格式,與資料庫中日期列的格式相匹配。
只要資料包含的只是日期部分,執行查詢就不會出問題。但是,如果涉及時間,情況就有點複雜了。
在討論日期查詢的複雜性之前,我們先來看看最重要的內建日期處理函數。
SQL Server Date 函數 下面的表格列出了 SQL Server 中最重要的內建日期函數:
函數 |
描述 |
GETDATE() |
返回當前日期和時間 |
DATEPART() |
返回日期/時間的單獨部分 |
DATEADD() |
在日期中添加或減去指定的時間間隔 |
DATEDIFF() |
返回兩個日期之間的時間 |
CONVERT() |
用不同的格式顯示日期/時間 |
SQL Date 資料類型 SQL Server 使用下列資料類型在資料庫中儲存日期或日期/時間值:
- DATE - 格式 YYYY-MM-DD
- DATETIME - 格式: YYYY-MM-DD HH:MM:SS
- SMALLDATETIME - 格式: YYYY-MM-DD HH:MM:SS
- TIMESTAMP - 格式: 唯一的數字
SQL 日期處理 如果不涉及時間部分,那麼我們可以輕鬆地比較兩個日期!
假設我們有下面這個 "Orders" 表:
OrderId |
ProductName |
OrderDate |
1 |
computer |
2008-12-26 |
2 |
printer |
2008-12-26 |
3 |
electrograph |
2008-11-12 |
4 |
telephone |
2008-10-19 |
現在,我們希望從上表中選取 OrderDate 為 "2008-12-26" 的記錄。
我們使用如下 SELECT 語句:
SELECT * FROM Orders WHERE OrderDate='2008-12-26'
結果集:
OrderId |
ProductName |
OrderDate |
1 |
computer |
2008-12-26 |
3 |
electrograph |
2008-12-26 |
現在假設 "Orders" 類似這樣(請注意 "OrderDate" 列中的時間部分):
OrderId |
ProductName |
OrderDate |
1 |
computer |
2008-12-26 16:23:55 |
2 |
printer |
2008-12-26 10:45:26 |
3 |
electrograph |
2008-11-12 14:12:08 |
4 |
telephone |
2008-10-19 12:56:10 |
如果我們使用上面的 SELECT 語句:
SELECT * FROM Orders WHERE OrderDate='2008-12-26'
那麼我們得不到結果。這是由於該查詢不含有時間部分的日期。
提示:如果您希望使查詢簡單且更易維護,那麼請不要在日期中使用時間部分!
SQL函數問題?getdate() ?
直接使用函數:
dateadd(hour, 6, getdate()) --加六個小時
dateadd(hour, -6, getdate()) --減六個小時
sql語句中插入date函數
sql="insert into inlib(inDate,bookname,bookid,inNum,,price,money)values(getdate(),'"& bookname &"',"& bookid &","& inNum &","& price &","& money &")"
inNum,,price 這兩個欄位之間多個逗號
不是這樣啊,呵呵
你檢查一下是不是資料類型不對
或者將SQL語句放在查詢分析器執行一下
看看提示什麼錯