时间格式转化的问题的解决方案
1
CREATE DATABASE TestDB
2
GO
3
USE TestDB
4
GO
5
CREATE TABLE tb_Record
6
(
7
tRecordTime Datetime
8
)
9
GO
10
INSERT INTO tb_Record
11
select DATEADD(yyyy,1,GETDATE())
12
Union all
13
select DATEADD(dd,1,GETDATE())
14
Union all
15
select DATEADD(dd,2,GETDATE())
16
Union all
17
select DATEADD(dd,3,GETDATE())
18
Union all
19
select DATEADD(dd,4,GETDATE())
20
GO
21
SELECT * FROM TestDB.dbo.tb_Record
22
GO
23
IF EXISTS (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_SearchRecord]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
24
DROP PROC [dbo].[sp_SearchRecord]
25
GO
26
CREATE PROC dbo.sp_SearchRecord
27
@bgDate DateTime,--开始时间
28
@edDate DateTime--结束时间
29
AS
30
31
BEGIN
32
DECLARE @ssql VARCHAR(1000)
33
SET @ssql='select a.tRecordTime as ''采集点'' from tb_Record a where 1=1 '
34
IF(@bgDate IS NOT NULL AND CONVERT(VARCHAR(1000),@bgDate)!='')
35
BEGIN
36
SET @ssql=@ssql+ 'AND DATEDIFF(ss,'''+CONVERT(VARCHAR(1000),@bgDate,120)+''',a.tRecordTime)> =0 '
37
END
38
IF(@edDate IS NOT NULL AND CONVERT(VARCHAR(1000),@edDate)!='')
39
BEGIN
40
41
SET @ssql=@ssql+' AND DATEDIFF(ss,a.tRecordTime,'''+CONVERT(VARCHAR(1000),@edDate,120)+''')>=0 '
42
END
43
PRINT @ssql
44
EXEC(@ssql)
45
END
46
47
GO
48
49
50
DECLARE @RC int
51
52
53
EXECUTE @RC = [TestDB].[dbo].[sp_SearchRecord]
54
@bgDate='2008-03-10'
55
,@edDate='2009-03-10'
56

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56
