如果我有以下实体:
public class PocoWithDates
{
public string PocoName { get; set; }
public DateTime CreatedOn { get; set; }
public DateTime LastModified { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这对应于具有相同名称/属性的SQL Server 2008表...
我怎么能自动:
当我自动说,我的意思是我希望能够做到这一点:
poco.Name = "Changing the name";
repository.Save();
Run Code Online (Sandbox Code Playgroud)
不是这个:
poco.Name = "Changing the name";
poco.LastModified = DateTime.Now;
repository.Save();
Run Code Online (Sandbox Code Playgroud)
在幕后,"某事"应该自动更新日期时间字段.什么是"东西"?
我正在使用Entity Framework 4.0 - 有没有一种方法可以让EF为我自动执行此操作?(EDMX中的特殊设置可能?)
从SQL Server端,我可以使用DefaultValue,但这只适用于INSERT(不是UPDATE).
类似地,我可以使用POCO上的构造函数设置默认值,但这只会在实例化对象时起作用.
当然我可以使用触发器,但它并不理想.
因为我正在使用Entity Framework,我可以挂钩到SavingChanges事件并在这里更新日期字段,但问题是我需要"了解"POCO(目前,我的存储库是用泛型实现的).我需要做一些OO技巧(比如让我的POCO实现一个接口,然后调用一个方法).我并不反对,但如果我必须这样做,我宁愿手动设置字段.
我基本上在寻找SQL Server …
.net c# sql-server-2008 entity-framework-4 datetime-generation
假设我有一个包含3列的表:
我有以下记录:
1, 2010-01-01 15:00:00, Some Title
2, 2010-01-01 15:00:02, Some Title
3, 2010-01-02 15:00:00, Some Title
Run Code Online (Sandbox Code Playgroud)
我需要做一个彼此在3秒内的GROUP BY记录.对于此表,第1行和第2行将组合在一起.
这里有一个类似的问题: Mysql DateTime组15分钟
我也发现了这个:http: //www.artfulsoftware.com/infotree/queries.php#106
我不知道如何将这些方法转换为可以工作几秒钟的方法.在SO问题上方法的问题在于,在我看来它只适用于落在从已知点开始的时间仓内的记录.例如,如果我FLOOR()
以秒为单位工作,间隔为5秒,则15:00:04的时间将与15:00:01分组,但不会与15:00:06分组.
这有意义吗?如果需要进一步说明,请与我们联系.
编辑:对于一组数字,{1,2,3,4,5,6,7,50,51,60},似乎最好将它们分组{1,2,3,4,5, 6,7},{50,51},{60},以便每个分组行取决于行是否在前一个3秒内.我知道这会改变一些事情,对不起,我很抱歉.
我试图模糊匹配来自不同服务器的日志.服务器#1可以记录项目"项目#1",服务器#2将在服务器#1的几秒内记录相同的项目"项目#1".我需要在两个日志行上做一些聚合函数.不幸的是,由于服务器软件的性质,我只有标题可以继续.
我想生成一个日期列表,希望加入另一个表,但我不知道使用什么语法,类似于这个:
SELECT dates.date, transactions.account_id, transactions.amount
FROM (...) as dates
LEFT JOIN transactions ON transactions.date = dates.date
WHERE dates.date >= '2010-01-01' AND dates.date <= '2010-12-31'
ORDER BY dates.date;
Run Code Online (Sandbox Code Playgroud)
我想要日期,所以我没有必要进一步按摩数据客户端.我用它来显示一个类似于这样的表:
Account 2010-01-01 2010-01-02 2010-01-03 Balance
============================================================
Chase 123 +100 -20 -70 +10
Chase 231 +13 -9 +4
Run Code Online (Sandbox Code Playgroud) 我有一个查询,它将表中的所有条目分组,并按日期时间列对它们进行分组.这一切都很有效:
SELECT SUM( `value` ) AS `sum` , DATE(`datetime`) AS `dt``
FROM `entry`
WHERE entryid = 85
AND DATETIME BETWEEN '2010-01-01' AND '2010-03-01'
GROUP BY `dt`
ORDER BY `datetime`
Run Code Online (Sandbox Code Playgroud)
问题是,我需要它返回一行,即使没有找到任何东西,值设置为0.我假设有一些MYSQL函数将处理这个但似乎无法找到它.
谢谢!
我有以下架构.
表投票
+------------------+--------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------------------+----------------+
| id | int(10) | NO | PRI | NULL | auto_increment |
| aid | varchar(10) | NO | | | |
| ip | varchar(100) | NO | | | |
| host | varchar(200) | NO | | | |
| timestamp | varchar(20) | NO | | 0000-00-00 00:00:00 | |
| user | tinytext | NO | | …
Run Code Online (Sandbox Code Playgroud) 可能重复:
过去7天的MySQL计数数据
我有一个问题,我需要显示字段的总和.可以说我有一个记录集如下,
detectDate |isp |infection | count
--------------------------------------
2012-10-02 01:00|aaaa |malware |3
2012-10-02 01:30|bbbb |malware |2
2012-10-02 01:33|bbbb |spy-eye |2
2012-10-02 01:45|aaaa |DDos |1
2012-10-03 01:50|cccc |malware |2
2012-10-03 02:00|dddd |TDSS |2
2012-10-03 04:50|dddd |TDSS |3
Run Code Online (Sandbox Code Playgroud)
我想显示一个输出,它将显示每天所有感染的总和,如下所示,
detectDate |infection | count
-------------------------------
2012-10-02 |DDos |1
2012-10-02 |malware |5
2012-10-02 |spy-eye |2
2012-10-02 |TDSS |0
2012-10-03 |DDos |0
2012-10-03 |malware |2
2012-10-03 |spy-eye |0
2012-10-03 |TDSS |5
Run Code Online (Sandbox Code Playgroud)
我用过这个查询,
SELECT DATE_FORMAT( detectDate, '%Y-%m-%d' ) AS detectDate, infection, SUM( count )
FROM …
Run Code Online (Sandbox Code Playgroud)