Click here to Skip to main content
15,883,705 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
SELECT DISTINCT LOGINTIME ,ER.UserId,ER.CompanyName,ER.EmailId,ER.RegistrationNumber,SM.Name
FROM ExporterRegistration ER
Inner Join IPTRACK IP on ER.UserId=IP.[USER] INNER JOIN [Locations].[StatesMaster]
SM on SM.StateId=ER.StateId
WHERE IP.LOGINTIME BETWEEN '2017-01-01' AND '2017-12-31'
AND IP.USERTYPE='Exporter' And IP.[Status]='Y'

above is my Query --
OutPut---
LOGINTIME UserId CompanyName EmailId RegistrationNumber Name
2017-03-29 17:00:48.000 1 M/s. Fauna International faunainternationalhr@gmail.com TN2/ME/033/04 Tamilnadu
2017-03-29 17:29:02.000 1 M/s. Fauna International faunainternationalhr@gmail.com TN2/ME/033/04 Tamilnadu
2017-03-30 10:22:46.000 1 M/s. Fauna International faunainternationalhr@gmail.com TN2/ME/033/04 Tamilnadu
2017-03-30 11:16:23.000 1 M/s. Fauna International faunainternationalhr@gmail.com TN2/ME/033/04 Tamilnadu
2017-03-30 11:25:26.000 1 M/s. Fauna International faunainternationalhr@gmail.com TN2/ME/033/04 Tamilnadu
2017-03-30 11:30:16.000 1 M/s. Fauna International faunainternationalhr@gmail.com TN2/ME/033/04 Tamilnadu
2017-03-30 14:32:13.000 1206 afzal kader and company afzalkader@libertyfoods.ina NULL Andhra Pradesh
2017-03-30 14:40:31.000 771 Kalyan Aqua & Marine Exports India P Ltd kalyanaquafarms@gmail.com AP1/MT/143/12 Andhra Pradesh
2017-03-30 14:53:16.000 771 Kalyan Aqua & Marine Exports India P Ltd kalyanaquafarms@gmail.com AP1/MT/143/12 Andhra Pradesh
2017-03-30 14:56:49.000 543 Kader Exports Pvt. Ltd. afzalkader@libertyfoods.in MA1/MT/009/05 Maharashtra

What I have tried:

i Want to Find Data from this Date 2017-03-29 17:00:48.000 for Select Only Row
not select Multiple Row like it Will not Find Row from Date and Time
it Will Select Data For Only Date

so Please Help Me-
Posted
Updated 1-Jan-18 19:46pm

You may try this..

If you apply distinct on a datetime part it will return all the rows. So its better to convert/cast into a date.

declare @LoginTable table (LOGINTIME DATETIME,UserId int,CompanyName varchar(100),EmailId varchar(50),
RegistrationNumber varchar(50),Name Varchar(50))

INSERT INTO @LoginTable VALUES('2017-03-29 17:00:48.000',1,'M/s. Fauna International','faunainternationalhr@gmail.com','TN2/ME/033/04','Tamilnadu')
INSERT INTO @LoginTable VALUES('2017-03-29 17:29:02.000',1,'M/s. Fauna International','faunainternationalhr@gmail.com','TN2/ME/033/04','Tamilnadu')
INSERT INTO @LoginTable VALUES('2017-03-30 10:22:46.000',1,'M/s. Fauna International','faunainternationalhr@gmail.com','TN2/ME/033/04','Tamilnadu')
INSERT INTO @LoginTable VALUES('2017-03-30 11:16:23.000',1,'M/s. Fauna International','faunainternationalhr@gmail.com','TN2/ME/033/04','Tamilnadu')
INSERT INTO @LoginTable VALUES('2017-03-30 11:25:26.000',1,'M/s. Fauna International','faunainternationalhr@gmail.com','TN2/ME/033/04','Tamilnadu')
INSERT INTO @LoginTable VALUES('2017-03-30 11:30:16.000',1,'M/s. Fauna International','faunainternationalhr@gmail.com','TN2/ME/033/04','Tamilnadu')
INSERT INTO @LoginTable VALUES('2017-03-30 14:32:13.000',	1206,'afzal kader and company','afzalkader@libertyfoods.ina',NULL,'Andhra Pradesh')
INSERT INTO @LoginTable VALUES('2017-03-30 14:40:31.000',	771	,'Kalyan Aqua & Marine Exports India P Ltd',' kalyanaquafarms@gmail.com','AP1/MT/143/12','Andhra Pradesh')
INSERT INTO @LoginTable VALUES('2017-03-30 14:53:16.000',	771	,'Kalyan Aqua & Marine Exports India P Ltd ','kalyanaquafarms@gmail.com',' AP1/MT/143/12','Andhra Pradesh')
INSERT INTO @LoginTable VALUES('2017-03-30 14:56:49.000',	543	,'Kader Exports Pvt. Ltd.','afzalkader@libertyfoods.in','MA1/MT/009/05','Maharashtra')

SELECT DISTINCT CAST(LOGINTIME AS DATE) AS distLoginDate,ER.UserId,ER.CompanyName,ER.EmailId,ER.RegistrationNumber,ER.Name
FROM @LoginTable ER 
WHERE ER.LOGINTIME BETWEEN '2017-01-01' AND '2017-12-31'
GROUP BY LOGINTIME, ER.UserId,ER.CompanyName,ER.EmailId,ER.RegistrationNumber,ER.Name
 
Share this answer
 
v2
Comments
Member 12183079 2-Jan-18 2:08am    
Thank You
I created some sample data with just a time column instead of trying to replicate your data set.

Basically in your WHERE clause, in your BETWEEN statement you need to cast your start/end values as date time in order to take into account the date and time within your where clause. Also, in your sample query you aren't taking into account time in your where clause, you are only taking into account the date.

In the sample code below i've included some sample queries, including the requested scenario, so hopefully this makes what you need to do more clear.

SQL
DECLARE @TestData TABLE (
	Id INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
	LoginTime DATETIME NULL
);

INSERT INTO @TestData ( LoginTime ) VALUES  ( '2017-03-29 17:00:48.000' )
INSERT INTO @TestData ( LoginTime ) VALUES  ( '2017-03-29 17:29:02.000' )
INSERT INTO @TestData ( LoginTime ) VALUES  ( '2017-03-30 10:22:46.000' )
INSERT INTO @TestData ( LoginTime ) VALUES  ( '2017-03-30 11:16:23.000' )
INSERT INTO @TestData ( LoginTime ) VALUES  ( '2017-03-30 11:25:26.000' )
INSERT INTO @TestData ( LoginTime ) VALUES  ( '2017-03-30 11:30:16.000' )
INSERT INTO @TestData ( LoginTime ) VALUES  ( '2017-03-30 14:32:13.000' )
INSERT INTO @TestData ( LoginTime ) VALUES  ( '2017-03-30 14:40:31.000' )
INSERT INTO @TestData ( LoginTime ) VALUES  ( '2017-03-30 14:53:16.000' )

--Select exact match where start/end values are same
SELECT * FROM @TestData WHERE LoginTime BETWEEN CAST('2017-03-29 17:00:48.000' AS DATETIME) AND CAST('2017-03-29 17:00:48.000' AS DATETIME)

--Or select exact match by making login time = param
SELECT * FROM @TestData WHERE LoginTime = CAST('2017-03-29 17:00:48.000' AS DATETIME)

--Should onl ypull 5 records by time of the date
SELECT * FROM @TestData WHERE LoginTime BETWEEN CAST('2017-03-29 17:29:02.000' AS DATETIME) AND CAST('2017-03-30 11:25:26.000' AS DATETIME)

--Ignores time, only pulls by date
SELECT * FROM @TestData WHERE CAST(LoginTime AS DATE) BETWEEN CAST('2017-03-29 17:29:02.000' AS DATE) AND CAST('2017-03-30 11:25:26.000' AS DATE)
 
Share this answer
 
Comments
Member 12183079 2-Jan-18 1:35am    
this is good but i want to only two record
Like ony Date Wise
1-2017-03-29
2-2017-03-30

then how to do
David_Wimbley 2-Jan-18 1:43am    
You need to clarify what you are wanting. By just saying you want 2 records with date 3/29 and 3/30 it appears you want to arbitrarily pull the data by selecting 2 random records where one date is 3/29 and the other date is 3/30 and that doesn't make sense.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900