问1: SQL2005下执行此句,代索引的语句报错何解??索引是肯定存在的,我创建了
SELECT * FROM transInfo (INDEX=index_cardID)
问2:这句话是什么意思呢?看不懂后面的条件部分,不明白怎么回事??
SELECT * FROM cardInfo WHERE (DATEDIFF(Day,getDate(),openDate)<DATEPART(weekday,openDate))
表结构如下:
CREATE TABLE cardInfo (
  cardID  CHAR(19) NOT NULL,
  curType  CHAR(5) NOT NULL,
  savingType  CHAR(8) NOT NULL,
  openDate  DATETIME NOT NULL,
  openMoney  MONEY NOT NULL,
  balance  MONEY NOT NULL,
  pass CHAR(6) NOT NULL,
  IsReportLoss BIT  NOT NULL,
  customerID INT NOT NULL
)

解决方案 »

  1.   


    WHERE (DATEDIFF(Day,getDate(),openDate) <DATEPART(weekday,openDate)) 
    DATEDIFF(Day,getDate(),openDate)--openDate和當前日期相差多少天
    DATEPART(weekday,openDate)--openDate的星期名是一個星期中的第幾天,這個和你設定的一個星期的第一天有關
      

  2.   


    1、--try
    SELECT * FROM transInfo with(INDEX=index_cardID) 2、
    --DATEDIFF(Day,getDate(),openDate) 
    将opendate与今天比较,单位为天,
    --DATEPART(weekday,openDate)
    得到opendate是一年中的第几周。这两个拿在一起比较,确实没可比性,不知道楼主的业务为啥需要把这两个放在一起进行比较。。
      

  3.   


    --DATEPART(weekday,openDate)
    得到opendate是一年中的第几周。
    这里打错了。是以为周日为每周的第一天,当前是周几。。
      

  4.   

    DateDiff 函数
    返回两个日期之间的时间间隔。 
    DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])
    DateDiff 函数的语法有以下参数:
    参数
    interval
    必选项。String expression 表示用于计算 date1 和 date2 之间的时间间隔。有关数值,请参阅“设置”部分。
    date1, date2
    必选项。日期表达式。用于计算的两个日期。
    DatePart 函数
    返回给定日期的指定部分。
    DatePart(interval, date[, firstdayofweek[, firstweekofyear]])
    Arguments
    interval
    必选项。字符串表达式表示要返回的时间间隔。有关数值,请参阅“设置”部分。
    Date
    必选项。要计算的日期表达式。
      

  5.   


    WHERE (DATEDIFF(Day,getDate(),openDate) <DATEPART(weekday,openDate)) 
    --這一整句的效果相當于不早于openDate一個星期
      

  6.   

    回答你的问2
    DATEDIFF(Day,getDate(),openDate)是得到当前日期与opendate日期相差多少天
    DATEPART(weekday,openDate) 是得到opendate日期是星期内的第几天