sqlserver用like日期查詢

2022-02-17 11:05:23 字數 3811 閱讀 5325

1樓:匿名使用者

like 的語法是針對於string型別資料,而datetime型別好像是不可以的,不過你必須要用的話,你要先進行轉換資料型別以後再寫like。

2樓:匿名使用者

查詢某一個時間範圍內的日期,應該用 between and或者 > .. and < ...

因為between and是取閉區間的,所以上面的**可以改成select * from schedule where begintime >= '2007-12-19' and begintime < '2007-12-20'

如果樓主一定堅持要用like查詢,可以參考下面的方法:

select * from schedule where convert( varchar(32), begintime, 20 ) like '2007-12-20%'

其中對 convert 不理解,可以參考 t-sql語法第3個引數值為20,代表odbc 規範的yyyy-mm-dd hh:mm:ss(24h)

3樓:匿名使用者

這個不清楚不過你用擷取字串方式查詢就行了。

關於sql模糊查詢日期時間的方法

4樓:幸運的創業找我

1、convert轉成string,在用like查詢。

select * from table1   where convert(varchar,yourtime,120) like   '2017-06-30%'

2、between

select * from table1 where yourtime between '2017-06-30 0:00:00' and '2017-06-30 24:

59:59'";

3、datediff()函式

select * from table1   where datediff(day,yourtime,'2017-06-30')=0

擴充套件資料

表示式datediff(timeinterval,date1,date2 [, firstdayofweek [, firstweekofyear]])

允許資料型別: timeinterval 表示相隔時間的型別,**為:

年份 yy、yyyy 季度 qq、q

月份 mm、m

每年的某一日 dy、y

日期 dd、d

星期 wk、ww

工作日 dw

小時 hh

分鐘 mi、n

秒 ss、s

毫秒 ms

5樓:大野瘦子

有以下三種方法:

1、convert轉成string,在用like查詢select * from table1   where convert(varchar,yourtime,120) like   '2017-06-30%'

2、between

select * from table1 where yourtime between '2017-06-30 0:00:00' and '2017-06-30 24:

59:59'";

3、datediff()函式

select * from table1   where datediff(day,yourtime,'2017-06-30')=0

6樓:du瓶邪

模糊查詢有以下三種方法:

1.convert轉成string,在用like查詢。

select * from table1 where convert(varchar,date,120) like '2006-04-01%'

2.between

select * from table1 where time between '2006-4-1 0:00:00' and '2006-4-1 24:59:59'";

3 datediff()函式

select * from table1 where datediff(day,time,'2006-4-1')=0

第一種方法應該適用與任何資料型別;

第二種方法適用string外的型別;

第三種方法則是為date型別定製的比較實用快捷的方法。

7樓:匿名使用者

要返回正確的記錄,你需要適用日期和時間範圍。有不止一種途徑可以做到這一點。例如,下面的這個select 語句將能返回正確的記錄:

select * from weblog

where entrydate>=」12/25/2000」 and entrydate<」12/26/2000」

這個語句可以完成任務,因為它選取的是表中的日期和時間大於等於12/25/2000 12:00:00:

000am並小於12/26/2000 12:00:00:

000am的記錄。換句話說,它將正確地返回2023年聖誕節這一天輸入的每一條記錄。

另一種方法是,你可以使用like來返回正確的記錄。通過在日期表示式中包含萬用字元「%」,你可以匹配一個特定日期的所有時間。這裡有一個例子:

select * from weblog where entrydate like 『dec 25 2000%』

這個語句可以匹配正確的記錄。因為萬用字元「%」代表了任何時間。

8樓:

日期不是字串,其實是一個double型別的數字,這樣找肯定不行的了,要找這一天的,就找大於今天0點的,小於下一天0點的,就行了麼

或者找找求日期的什麼函式,光比較日期

9樓:匿名使用者

select punchtime from dbo.attendpunch,dbo.employee where attendpunch.

empno=employee.empno

and employee.empno='12020' and attendpunch.punchtime between '2007-05-17 00:

00:00' and '2007-05-17 23:59:

59' order by attendpunch.punchtime

sql server 中要用 日期型的欄位作為查詢條件?

10樓:du瓶邪

比如一張表裡有如下時間欄位的記錄:

2009-01-01 12:00:00

2008-12-23 11:00:11

2009-12-22 11:22:00

2009-01-01 14:00:00

2009-12-22 12:00:09

通過以下的**段進行group by之後重排序得到新的結果。

select convert(varchar(10), starttime,20) as 'dailydate' from table1 group by convert(varchar(10), starttime,20)

結果如下:

2009-01-01

2008-12-23

2009-12-22

11樓:匿名使用者

用 大於 〉 小於 < 就可以了 阿

比如 你 日期欄位時 date

你要查詢 大於 2006-5-16 好的 資料那麼 while date〉'2006-5-16'就可以了。

12樓:匿名使用者

用datediff 函式

select * from tabel where datediff(datepart,查詢日期,設定日期)>0

like後面用動詞原形嗎,like後面可以加動詞原形嗎?

like後通常加n.to do或doing.加to do表想做而未做.是一次性動作.加doing則表經常性動作.喜歡做某事like n doing to do或adj 表希望 喜歡 某物怎樣 沒有原型 用bailike to 表du意願 例如 i don t like to disturb you....

在SqlServer中如何只取當前月日

select from 表名 where convert varchar,日期,112 between convert varchar,getdate 112 and convert varchar,dateadd month,1,getdate 112 你可以把下邊兩句分別跑一 版下看下結果權 s...

用C如何呼叫sql server2019觸發器

觸發器是執行sql語句的時候,系統自動執行的,要不怎麼叫觸發器。觸發器是不用人為執行的。你說的呼叫是呼叫儲存過程或函式吧。觸發器 準確的來說觸發器是你在更新或者操作某個資料時,而執行的一段程式。比如 你寫一段 當刪除每個員工的姓名時,也刪除該員工的所有資訊。這就是叫做觸發器。所以觸發器是不用呼叫的。...