2014-08-27 12 views
2

我列:SQL選擇其中某事發生的那一天

code  unique   date      info  name 
a123  adfgh   2014-07-14 14:15:00  test  user1 
a124  aklgp   2014-08-12 09:15:00  test  user1 
a175  opllp   2014-08-12 11:15:00  test  user2 

,我希望得到的所有記錄,其中唯一= $變量,但在那一天。 Exmpl: 如果我的唯一= 'aklgp' 我想看到這兩個

a124  aklgp   2014-08-12 09:15:00  test  user1 
a175  opllp   2014-08-12 11:15:00  test  user2 

becouse都記錄在同一天?它是否可行?

我DATEDIFF玩但不適合我

+0

如果唯一未找到仍然需要日記錄? – 2014-08-27 13:18:13

+0

獨特的100%存在。但如果不存在,我不需要 – Klapsius 2014-08-27 13:21:03

回答

2

不知道這是足夠的,但這個想法可能是類似的東西。

cast([date] as date) 

將你的日期時間的「日期」的一部分(希望這是一個日期型),這將給你......一天。

select * 
from yourTable 
where cast([date] as date) IN (select cast([date] as date) 
           from yourTable 
           where [unique] = 'aklgp') 
當然

,如果你在不同的日子有很多aklgp,你會得到更多DATAS。但獨特應該是......獨特的,不是?

SqlFiddle

編輯

正如布拉特所說,你也可以使用EXISTS

SELECT * from yourTable t1 
where exists (select null 
       from yourTable t2 
       where cast(t1.date as date) = cast(t2.date as date) 
       and t2.[unique] = 'aklgp') 
+0

是的。但我需要得到所有記錄時,醫生記錄已作出 – Klapsius 2014-08-27 13:23:33

+0

@ user3747585看到sqlFiddle在更新的答案?這就是你會得到的。 – 2014-08-27 13:24:23

+0

是的。非常感謝 – Klapsius 2014-08-27 13:33:30

1

可能這也幫助你,

DECLARE @UNIQUE VARCHAR(20) 
SET @UNIQUE = 'AKLGP' 

SELECT * FROM [TABLE] 
WHERE CAST([DATE] AS DATE) = (SELECT CAST([DATE] AS DATE) FROM [TABLE] WHERE [UNIQUE] = @UNIQUE) 
0

我不會不知道只使用S的解決方案QL。也許在PHP的解決方案可以提供一些幫助:

$query = "SELECT * FROM yourTable WHERE unique = 'aklgp'"; 
$result = mysql_query($sql) or die(mysql_error()); 
$row = mysql_fetch_row($result); 

$year = date_format($row['date'], 'Y'); 
$month = date_format($row['date'], 'm'); 
$day = date_format($row['date'], 'd'); 

$query = "SELECT * FROM yourTable 
WHERE (DATEPART(yy, date) = $year 
AND DATEPART(mm, date) = $month 
AND DATEPART(dd, date) = $day)";