一个菜鸟问题,有什么办法能查询出一个表中的日期是星期六的数据,只给出一个日期字段。

解决方案 »

  1.   

    Select * from TableName Where DatePart(dw,日期字段)=6
      

  2.   

    declare @dddd datetime
    set @dddd = cast('2006-04-20' as datetime)
    select * from yourtable where datefiled = datename(weekday,@dddd)
      

  3.   


    select * from yourtable where = datename(weekday,YourDateFiled) = '星期六'
      

  4.   

    select 列名 from 表名 where 日期列名 = '星期六'
      

  5.   

    注意:DatePart(dw,日期字段)=6 计算出来的 实际是 星期五 的数据!!!
      

  6.   

    可以用select * from yourtable where  datename(weekday,YourDateFiled) = '星期六'select * from yourtable where  datepart(dw,YourDateFiled) = 7 -- 注意 星期六 是 7来做
      

  7.   

    對,剛纔一下子寫錯了。1對應的是星期天
    7對應的才是星期六。Select * from TableName Where DatePart(dw,日期字段)=7
      

  8.   

    对,要查出"xxxx-xx-xx",比如说"2006-4-22"这天是星期六,那就把2006-4-22这一列值给取出来
    还有其他的值也是星期六这一天同样给列出来。不过这样考虑的话那就要在存储过程里进行逻辑处理了。
      

  9.   

    kokubo_wing(翅膀) ( ) 信誉:100  2006-04-20 15:00:00  得分: 0  
     
     
       对,要查出"xxxx-xx-xx",比如说"2006-4-22"这天是星期六,那就把2006-4-22这一列值给取出来
    还有其他的值也是星期六这一天同样给列出来。不过这样考虑的话那就要在存储过程里进行逻辑处理了。
      
     
    ------------------------------------------------------------------------
    沒有你想的那麼複雜吧。假設今天是星期四,傳入今天的日期,就把數據庫中所有是星期四的數據全部查詢出來,這是你的要求吧。Select * from TableName Where DatePart(dw,日期字段)=DatePart(dw,GetDate())
      

  10.   

    要先设置哪一天是每星期的第一天,sql server默认是星期天(7)
    set datefirst 1
    Select * from TableName Where DatePart(dw,日期字段)=6
      

  11.   

    kokubo_wing(翅膀) ( ) 信誉:100  2006-04-20 15:23:00  得分: 0  
     
     
       那照你这么说,上个星期四的值你不要了吗?
      
     
    --------------------------------------------------------------------------
    Select * from TableName Where DatePart(dw,日期字段)=DatePart(dw,GetDate())
    這就是說獲得所有為星期四的數據取出來了。這裡也是可以改的啊,隨便你查詢哪天的。Select * from TableName Where DatePart(dw,日期字段)=DatePart(dw,'2006-4-22')這就是查詢所有是星期六的數據。
      

  12.   

    kokubo_wing(翅膀) ( ) 信誉:100  2006-04-20 15:44:00  得分: 0  
     
     
       你传进去的参数是星期一~到星期天
      
     
    -----------------------------------------------------------------大哥,我什麼時候傳進星期一~星期天了。我傳的就是日期啊。今天的日期,'2006-4-22',等等。
      

  13.   

    我把问题想复杂了!sorry
    按上面的说法要求就是固定的传进去参数是星期一~到星期天
    pubs数据库的employee表做实验
    select hire_date from employee where datename(weekday,hire_date) = '星期六'
    成功
      

  14.   

    用datename(weekday,getdate())需要注意一个问题,不同语言版本的结果是不一样的。
    如果是中文,则为'星期六',如果是英文,则为'Saturday'。最好用datepart(wd,getdate())
    1~7分别代表星期日-星期六
      

  15.   

    --建立測試環境
    Create Table TEST
    (ID Int,
     InsertDate DateTime)
    --插入數據
    Insert TEST Select 1,'2006-03-12'
    Union All Select 2,'2006-03-12'
    Union All Select 3,'2006-03-11'
    Union All Select 4,'2006-03-17'
    Union All Select 5,'2006-03-19'
    Union All Select 6,'2006-03-23'
    Union All Select 7,'2006-03-16'
    --測試
    --查詢所有的日期為星期四的數據,傳入的數據是今天的日期
    Select * from TEST Where DatePart(dw,InsertDate)=DatePart(dw,GetDate())
    --查詢所有的日期為星期六的數據,傳入的數據是'2006-04-22'
    Select * from TEST Where DatePart(dw,InsertDate)=DatePart(dw,'2006-04-22')
    --刪除測試環境
    Drop Table TEST
    --結果
    /*
    ID InsertDate
    1 2006-03-23 00:00:00.000
    1 2006-03-16 00:00:00.000ID InsertDate
    1 2006-03-11 00:00:00.000
    */
      

  16.   

    对,你说的非常好,我也在想这个问题,
    用这个datepart(wd,getdate())1~7分别代表星期日-星期六
    比较合理一些
    谢谢,你使我进步了!!!
      

  17.   

    傳數值進去更好點,像我們的繁體版的SQL,你那麼查就查不出來了。:)
      

  18.   

    呵呵,所以我比较赞成刚才lovvver(冲啊!杀啊!!) 的说法
    用datepart(wd,getdate())1~7来查
    有比较才有鉴别
    有切磋才有进步
    也谢谢你paoluo(一天到晚游泳的鱼)
    向你学习
      

  19.   

    Select [Column list] from [your table] Where DatePart(dw, [The datetime column] )=6