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