如何通过创建日期在数据库中搜索个人资料

13 浏览
0 Comments

如何通过创建日期在数据库中搜索个人资料

我在数据库中有一个带有创建日期列(DATETIME)的个人资料。我需要在Java中实现按日期搜索个人资料的功能,以返回在特定日期或月份创建的所有个人资料。\n实现这个功能的最佳方法是什么?我考虑过添加新列(day,month,year)并按照它们进行搜索,但我不知道这是否是正确的方法。搜索应该快速且日期需要本地化。\n编辑:\n是的,这个查询(来自其他问题)是可以的:\n

SELECT * FROM profile WHERE DATE(creation_date) = '20190121';

\n我认为这里的问题是,在个人资料数量很大的情况下,这个查询可能会很慢,因为首先必须执行Date函数,然后对所有创建日期进行比较。这个解决方案似乎效率低下。我不确定添加更多列(day,month和year作为整数)是否会是更好的解决方案,或者是否可以使用索引。

0
0 Comments

搜索数据库中的资料库通过创建日期查询的问题是因为需要根据创建日期来搜索特定的资料库记录。这个问题可以通过在资料库上添加一个创建日期的索引来解决,然后使用以下查询语句来搜索符合条件的记录:

SELECT p.* 
FROM profile p 
WHERE p.creation_date >= '2019-01-21' AND 
      p.creation_date < '2019-01-22'; 

添加一个profile(creation_date)的索引,这样查询就会变得快速且可扩展(即随着记录数的增加不会明显变慢)。

0
0 Comments

问题出现的原因是需要在数据库中根据创建日期来搜索用户档案。下面是解决该问题的方法:

尝试以下代码:

Declare @startdate date ='1/1/2019'
Declare @enddate date ='1/21/2019'
Select * from tablename where cast(creationdate as date) between @startdate and @enddate

以上代码声明了两个日期变量`@startdate`和`@enddate`,分别表示搜索的起始日期和结束日期。然后使用`CAST`函数将`creationdate`字段转换为日期类型,并使用`BETWEEN`关键字来筛选出在指定日期范围内的用户档案。

通过以上方法,我们可以根据创建日期在数据库中搜索用户档案。

0
0 Comments

问题的原因是希望能够通过创建日期来在数据库中搜索个人资料,但不知道如何实现快速搜索以及如何处理本地化的日期。解决方法是在数据库中添加一个Datetime列来记录个人资料的创建时间,并添加一个timezone列来记录创建资料时所使用的时区。然后可以使用以下查询语句来搜索个人资料:

SELECT * FROM profile WHERE created_at = '?'

其中'?'是用户要搜索的日期。为了处理本地化的日期,可以使用以下查询语句:

SELECT * FROM profile WHERE CONVERT_TZ(created_at, 'GMT', profile_timezone) = '?'

其中'GMT'是服务器的时区(替换为实际的时区),profile_timezone是个人资料的时区。这样,当用户搜索个人资料时,返回的结果将根据创建时间的日期时间在用户所在的时区进行调整。这是否符合您的需求?

0