A. C#中拼sql語句問題,裡面使用了datepart()函數出錯
是不是datetime 的內容是 null 啊? 並檢查有沒有中文空格或符號啥的?
試試這個 加個ISNULL函數
sql = "select * from menu where userid='"+userid+ "' and isnull(datepart(day,datetime),0)=2"; break;
B. SQL 關於datepart函數
select datepart(week,DATEDIFF(day,1,'2017/01/09'))
=select datepart(week,42741)
=select datepart(week,'2017-01-08')
select datepart(week,DATEDIFF(day,'2017/01/01','2017/01/09'))
=select datepart(week,8)
=select datepart(week,'1900-01-09')
C. DATEPART在SQL中是什麼意思
日期部分 datepart 可以指定選出日期的部分
如datepart(dd,getdate()) --反回今天的天
MM 月等。
D. sql 中的datepart
這樣寫就行:
select convert(char(7),getdate(),120)
datepart函數返回類型是int 型,所以還需要轉換成字元型,然後再去拼接,比較麻煩.
E. HQL中使用SQL的函數Datepart問題。
HQL使用sql函數不靠譜,你用sql吧,你用hql能返回什麼?不也是個字元串。
HQL是Hibernate的一套語法和標准,你寫的查詢語句必須符合它的要求,而對於Dialect(方言)只是充當了HQL到SQL的一個翻譯官而已,它只能將HQL語句翻譯成SQL語句,是單向的,不能把SQL翻譯成HQL,明白了吧。所以對於SQL中的一些函數,它是不認識的。除非是各種資料庫中通用的函數。
HQL之所以能夠用在大部分資料庫上,就在於它是各種資料庫語句的子集,應該來說是是各種資料庫通用的語句,只不過在執行的時候,需要相應資料庫的翻譯官,就是Dialect,翻譯成相應數據支持的語句。
試想,如果HQL要是能用各種資料庫中的函數,那豈不是太難制定統一的標准了嗎?並且使用起來也是非常困難的。
如果實在想用HQL 那就 查出ec.date 再用java的Calendar類求一下星期幾吧。
F. SQL 關於時間函數select datepart 的問題
我不能直接給你答案,但是我能給你參考:
/*--
創建月購買數量統計存儲過程:proc_buyIn_month_count
--*/
CREATE
PROC
proc_buyIn_month_count
(
@startTime
smalldatetime,
--輸入參數:查詢的開始時間
@endTime
smalldatetime
--輸入參數:查詢的結束時間
)
AS
--New
--定義表變數
DECLARE
@Mydb_buyIn_month_count
TABLE(buyTimeForYear
varchar(5),buyTimeForMonth
varchar(5),sumNumber
int)
--先定義兩個時間段的月份差值,然後計算它們之間的月份差值
DECLARE
@monthDifference
int
SET
@monthDifference
=
DATEDIFF(month,@startTime,@endTime)
--定義循環變數,並賦初始值
DECLARE
@i
int
SET
@i
=
0
WHILE(@i
<=
@monthDifference)
BEGIN
--這兩個變數主要是記錄統計的是那一年的那一月,並給這兩個變數賦值
DECLARE
@nowTimeForYear
varchar(5),@nowTimeForMonth
varchar(5)
SET
@nowTimeForYear
=
DATEPART(year,DATEADD(month,@i,@startTime))
SET
@nowTimeForMonth
=
DATEPART(month,DATEADD(month,@i,@startTime))
--定義要統計的欄位:該月的購入總數量
DECLARE
@countNumber
int
--統計數據
SELECT
@countNumber
=
sum(RNumber)
FROM
ResolventHistory
WHERE
DATEDIFF(month,DATEADD(month,@i,@startTime),RTime)
=
0
--向表變數中添加統計後的數據
INSERT
INTO
@Mydb_buyIn_month_count(buyTimeForYear,buyTimeForMonth,sumNumber)
VALUES(@nowTimeForYear,@nowTimeForMonth,@countNumber)
--循環變數加1
SET
@i
=
@i
+
1
END
--查詢出表變數中的所有數據
SELECT
*
FROM
@Mydb_buyIn_month_count
GO
G. sql 中datepart取的時間怎麼不對
datepart 中的參數是沒分大小寫的,而且 datepart 只能返回日期時間的其中一個數值,如:
datepart(year,getdate()) --返回「年」
datepart(month,getdate()) --返回「月」
datepart(day,getdate()) --返回「日」
datepart(Hour,getdate()) --返回「時」
datepart(minute,getdate()) --返回「分」
datepart(second,getdate()) --返回「秒」
datepart 是不能同時返回「年月日」或「時分秒」的,否則就要用 convert 轉換函數返回,如要返回標准ODBC 規范(中國)日期時間格式:
convert(nvarchar(10),getdate(),120) --返回系統的「年月日」
convert(nvarchar(20),getdate(),120) --返回系統的「年月日 時分秒」
convert(nvarchar(10),getdate(),108) --返回系統的「時分秒」
convert(nvarchar(5),getdate(),108) --返回系統的「時分」
......
H. sql datepart()
weekday (dw) 日期部分返回對應於星期中的某天的數,例如:Sunday = 1、Saturday = 7。weekday 日期部分產生的數取決於 SET DATEFIRST 設定的值,此命令設定星期中的第一天。
I. Oracle函數DATEPART小時或分鍾語句怎麼寫
oracle是用to_char函數進行時間轉換
小時
select to_char(hiredate,'hh') from table
hiredate為系統時間
J. SQL server 2000中的datename()函數和datepart()函數怎麼一樣啊
DATENAME函數的作用是是從日期中提取指定部分數據,比如我們想得到當前日期中的年份,月份等信息,就可以使用該函數.返回類型是nvarchar.
具體的語法如下:
DATENAME(param,date);
param是指定要返回日期部分的參數
date就是指定的日期.
例子:
select DATENAME(year,getdate()) as 'YEAR'
執行上面的SQL語句就會看到返回值為 '2006'
DATEPART
返回代表指定日期的指定日期部分的整數。
語法
DATEPART ( datepart ,date )
參數
datepart是指定應返回的日期部分的參數
date是返回 datetime 或 smalldatetime 值或日期格式字元串的表達式
返回類型int
二個函數,功能差不多,一個返回varchar,一個返回int