标签: database

计算一列中行之间的Datediff(超过2条记录)

我有一个表有一列日期,我想找到它们之间的区别.我已经能够找到一个答案,让我得到两个日期之间的差异,但找不到任何可以让我区分每个客户的几个记录的东西.

我的数据如下:

Customer     Pstng_Date
Henry        05\01\2014
Henry        10\01\2014
Henry        15\01/2014
Williams     07\01/2014
Williams     15\01\2014
Run Code Online (Sandbox Code Playgroud)

我一直在使用下面的代码来计算威廉姆斯的例子,但不能让它工作,以便计算所有亨利的例子.我想看到的是:

Customer     Pstng_Date     Days_Between
Henry        05\01\2014     0
Henry        10\01\2014     5
Henry        15\01/2014     5
Williams     07\01/2014     0
Williams     15\01\2014     8
Run Code Online (Sandbox Code Playgroud)

我一直在使用以下代码来计算两个记录之间的差异.

SELECT AllDays.ID, AllDays.Customer, AllDays.Pstng_Date, AllDays.NextDate, DateDiff("d",[Pstng_Date],[NextDate]) AS Days
FROM (SELECT  ID, Customer, Pstng_Date,
                    (   SELECT  Min(Pstng_Date)
                        FROM    SAPData T2
                        WHERE  T2.Pstng_Date > T1.Pstng_Date
                    ) AS NextDate
            FROM    SAPData T1
        )  AS AllDays;
Run Code Online (Sandbox Code Playgroud)

sql database ms-access access-vba

5
推荐指数
1
解决办法
9486
查看次数

在PDO(使用MySQL)中执行INSERT后获取最后插入的行?

当向MySQL数据库中插入新对象(作为一行)时,我想返回最后插入的行(id并不总是足够的,因为我想在某些插入不具有任何自动增量的泛型函数中使用此对象) ID)。

我需要使用它来使整个对象重新获得成功,并使用POSSIBLY数据库创建的ID,时间戳,或者在某些情况下只是插入之前我知道的值-因此PDO :: lastInsertId无法解决问题。

$query = "INSERT INTO table (".$colinsert.") VALUES (".$colbind.")";
$stmt = $this->db->prepare($query);
$ex = $stmt->execute();
// ... if $ex was successful, how do I retrieve the last inserted row now?
Run Code Online (Sandbox Code Playgroud)

一个独立于数据库的解决方案会很好,但是如果它是MySQL特定的,那也是可以的:-)

编辑:为了防止一些误解-例如,我的表user_contact_connection具有以下行(contact_id,user_id,additional_connection_info)。主键是(contact_id,user_id)。在这种情况下,PDO :: lastInsertId返回0,因为没有自动增量列。

好的,在这种情况下,我知道我一直在插入哪一行,但是我仍然希望找到一种方法来获取一般插入的最后一行而无需显式查询ID?这有可能吗?

php mysql database pdo

5
推荐指数
1
解决办法
3123
查看次数

如何在PostgreSQL中获取字符串中regexp匹配的位置?

我有一个带书名的表格,我想选择标题与正则表达式匹配的书籍,并按标题中正则表达式匹配的位置排序结果.

单词搜索很容易.例如

TABLE book
id   title
1    The Sun
2    The Dead Sun
3    Sun Kissed
Run Code Online (Sandbox Code Playgroud)

我打算把.*发送查询DB之前,字与字之间在客户端的搜索词,所以我会写在这里准备的正则表达式SQL.

SELECT book.id, book.title FROM book
    WHERE book.title ~* '.*sun.*'
    ORDER BY COALESCE(NULLIF(position('sun' in book.title), 0), 999999) ASC;

RESULT
id   title
3    Sun Kissed
1    The Sun
2    The Dead Sun
Run Code Online (Sandbox Code Playgroud)

但是如果搜索词有多个单词,我想匹配标题,这些标题包含搜索词中的所有单词和它们之间的任何内容,并按照之前的位置排序,所以我需要一个返回正则表达式位置的函数,我没有在PostgreSQL官方文档中找到合适的一个.

TABLE books
id   title
4    Deep Space Endeavor
5    Star Trek: Deep Space Nine: The Never Ending Sacrifice
6    Deep Black: Space Espionage and National Security

SELECT book.id, book.title FROM …
Run Code Online (Sandbox Code Playgroud)

regex sql database postgresql

5
推荐指数
1
解决办法
4602
查看次数

将Django数据库导出到YAML文件中

我知道您可以轻松地将YAML文件导入Django数据库(例如,为了在启动项目之前填充数据库)但是我该如何做相反的事情(即将完整的数据库保存到单个.yaml文件中).

我读到有一种方法可以将一个表导出到一个文件中:

YAMLSerializer = serializers.get_serializer("yaml")
yaml_serializer = YAMLSerializer()
with open("file.yaml", "w") as out:
    yaml_serializer.serialize(SomeModel.objects.all(), stream=out)
Run Code Online (Sandbox Code Playgroud)

但我需要在完整的数据库(它有许多表,每个表之间有复杂的关系)上进行.

我可以写一个脚本为我做这个,但我不想重做已经可能已经完成的事情,我不知道如何更好地做到这一点,以便Django没有困难阅读它.

到目前为止,我一直在研究SQLITE3数据库引擎.

有任何想法吗?

python database django yaml django-models

5
推荐指数
1
解决办法
2734
查看次数

Rails加密列仍然允许搜索

我有一个rails应用程序,需要我加密数据库中的一些列.

基于许多示例,我已经拥有加密的用户密码和电子邮件.即使像我这样的菜鸟,这似乎也很容易.

具体的挑战是我正在为律师开发一个应用程序(实际上是一个atty),我想加密他们客户的名字和地址,这样如果数据库被盗,那么这些数据是不可读的.问题是最终用户(律师)希望通过客户端进行搜索.

我假设基于我的要求,尽管存在争议(尽管可能缺乏知识),但数据库中的加密是正确的方法.我认为否则在应用程序中搜索将非常困难.似乎可以设置数据库,以便密钥可以在启动时从其他位置传递到数据库中,这样密钥就不在服务器上的某个文件中.

实际上,我甚至确信我正在寻找的那种加密是可行的还是实用的.我读了一下并搜索过,但到目前为止,我找不到明确的解决方案.以下是我看过的最有前途的事情.所有这些似乎都是强大而有创意 请帮助我纠正任何错误的印象,并指出,如果存在,可能会有效的解决方案.一如既往,谢谢.

attr_encrypted

应用程序加密,但我不认为实际搜索是可能的.

pgcrypto

使用postgresql的数据库加密,但它不是Rails 4.0,我似乎无法做到这一点.不确定它会做我想做的事情.

jmazzi/crypt_keeper

使用postgresql的数据库加密,但不允许搜索可行的客户端数据.

database encryption search ruby-on-rails

5
推荐指数
1
解决办法
1716
查看次数

动态大小的结构 - 学习C艰难的方式Ex17

我在学习C艰难的方式练习时遇到了麻烦.该练习提供了一个简单的数据库程序,它具有固定的大小和行数.您可以在下面看到构成数据库的结构.

#define MAX_DATA 512
#define MAX_ROWS 100

struct Address {
    int id;
    int set;
    char name[MAX_DATA];
    char email[MAX_DATA];
};

struct Database {
    struct Address rows[MAX_ROWS];
};

struct Connection {
    FILE *file;
    struct Database *db;
};
Run Code Online (Sandbox Code Playgroud)

任务是更改代码以接受MAX_DATA的参数,MAX_ROWS将它们存储在数据库结构中,并将其写入文件,从而创建一个可以任意调整大小的数据库.

我理解如何接受来自用户的MAX_DATA和MAX_ROWS,作为命令行参数 - 在文件中定义的较低的函数中.一旦我有了这些值,我不知道如何将它们存储在数据库结构中并写入文件.

感谢任何能够提供帮助的人.您可以在此处找到其余代码:http://c.learncodethehardway.org/book/ex17.html

c database struct

5
推荐指数
1
解决办法
1260
查看次数

“ SELECT * FROM ...” VS“ SELECT ID FROM ...”性能

作为一个不熟悉SQL的人,因为我使用的不是很多,所以我敢肯定对这个问题有答案,但是我不知道要寻找什么才能找到它,所以我深表歉意。

问题:如果我在数据库中有一堆具有很多列的行,但只需要取回更快的ID或它们的速度相同?

SELECT * FROM...
Run Code Online (Sandbox Code Playgroud)

SELECT ID FROM...
Run Code Online (Sandbox Code Playgroud)

.net sql database sql-server asp.net

5
推荐指数
1
解决办法
885
查看次数

postgres中是否有任何等效的sp_help

在SQL Server中,如果我这样写命令-

EXEC SP_HELP EmployeeMaster

它将返回我的表格字段以及在其上定义的所有默认约束。现在我只想知道在上面的postgres中有什么命令吗?

虽然我知道在postgres中仅获取表字段,但是您可以使用以下查询。

select column_name from information_schema.columns where table_name = 'EmployeeMaster'
Run Code Online (Sandbox Code Playgroud)

sql database postgresql

5
推荐指数
1
解决办法
3361
查看次数

如何从内部保护系统(如内部工作)?

我在一个流行的网络托管服务中部署了一个应用程序.因为他们对自己的计算机拥有管理员权限,所以我觉得我迫切需要跨所有层保护我的数据,包括数据库本身.

在数据库上,我正在考虑加密敏感信息,如用户名和电子邮件,可能是他们的电话号码等.存储库层将处理所有编码/解码要求.

我有三个DLL:1)应用程序层(控制器和视图),2)业务层(服务逻辑)和3)数据层(存储库).

通常,来自外部的用户将请求页面,如果他们尚未通过身份验证,则会将其重定向到登录页面,这是典型的表单身份验证内容.这可以保护系统免受外部非特权用户的攻击.

但是,在内部,从技术上讲,这些DLL可以导入到任何.NET应用程序中.在这种情况下,应用程序可以随时访问系统的内部工作.

c# database sql-server security asp.net-mvc

5
推荐指数
1
解决办法
105
查看次数

使用UML类图的数据库设计

我想使用UML类图设计一个数据库,但我不知道如何.有人能帮我吗.如何使用UML类图设计数据库?

database database-design uml

5
推荐指数
2
解决办法
3万
查看次数