select 问题

舍南舍北 2005-11-22 12:15:03
字段称:date
字段類型:datetime
長度:8
SELECT * FROM sales_order_detail
可以找出2005年的數據,但是 SELECT * FROM sales_order_detail where date like '2005%'
就查不到了?
...全文
192 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
faysky2 2005-11-22
  • 打赏
  • 举报
回复
date是关键字,必须加[]
SELECT * FROM sales_order_detail where [date] like '2005%'
舍南舍北 2005-11-22
  • 打赏
  • 举报
回复
為什麼?
winehero 2005-11-22
  • 打赏
  • 举报
回复
select *
from sales_order_detail
where Year([date])=2005
xtwfnwfg 2005-11-22
  • 打赏
  • 举报
回复
SELECT * FROM sales_order_detail Where Year(date)=2005
xtwfnwfg 2005-11-22
  • 打赏
  • 举报
回复
SELECT * FROM sales_order_detail Where date>='2005-01-01' and date<'2006-01-01'
最简单最直观
weiweiplay 2005-11-22
  • 打赏
  • 举报
回复
SELECT * FROM sales_order_detail where date between '2005-01-01' and '2005-12-31'
vbman2003 2005-11-22
  • 打赏
  • 举报
回复
select *
from sales_order_detail
where convert(char(4),[date],120)='2005'
clear_zero 2005-11-22
  • 打赏
  • 举报
回复
推荐这个
select * from sales_order_detail where Year([date])=2005


SELECT * FROM sales_order_detail where date between '2005-01-01' and '2005-12-31'
按年查容易,如果到月份。在英美两种格式下容易出现歧义。我刚开始写程序的时候在这里遇到过困难
lionking13520 2005-11-22
  • 打赏
  • 举报
回复
SELECT * FROM sales_order_detail where date between '2005-01-01' and '2005-12-31'

具体的数字不能用like
还想懒够 2005-11-22
  • 打赏
  • 举报
回复
使用convert
DengXingJie 2005-11-22
  • 打赏
  • 举报
回复
select * from sales_order_detail where left(convert(varchar(8),[date],111),4)='2005'
cozil 2005-11-22
  • 打赏
  • 举报
回复
数据库会试着把你输入的字符串转换成datetime型,如果转换失败,当然不会有结果。
2005%转换成datetime肯定是无效的, '2005-01-01'转换成datetime型是 '2005-01-01 00:00:00'.
如果涉及到小时或分钟等,用dateadd()比较好。
feiyun0112 2005-11-22
  • 打赏
  • 举报
回复
SELECT * FROM sales_order_detail where date between '2005-01-01' and '2005-12-31'
这样又行啊
--------------------------------------------
这还是日期之间比较
rayxu 2005-11-22
  • 打赏
  • 举报
回复
select * from sales_order_detail where Year([date])=2005
faysky2 2005-11-22
  • 打赏
  • 举报
回复
再加一个%就行:SELECT * FROM sales_order_detail where [date] like '%2005%'
舍南舍北 2005-11-22
  • 打赏
  • 举报
回复
SELECT * FROM sales_order_detail where date between '2005-01-01' and '2005-12-31'
这样又行啊
feiyun0112 2005-11-22
  • 打赏
  • 举报
回复
因为字段類型:datetime

不是char
舍南舍北 2005-11-22
  • 打赏
  • 举报
回复
不是的哦,在執行的時候會自動加上來的,但不起作用

7,765

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧