use*_*773 3 c# sql-server create-table datepart
我想创建一个像这样的列:
create table dbo.t1
(
[Notification_Month] datepart(mm, [date]) null,
)
Run Code Online (Sandbox Code Playgroud)
我想将月份存储为日期属性而不存储日期的其他部分.这是我所知道的一个奇怪的问题,但这个表正在被WPF应用程序使用,因此如果SQL Server允许这样做会更容易限制日期条目,但如果不是,我可能会找到一个使用c#的长而复杂的解决方案.
我有一些其他的解决方法,如果这是不可能的,但在我说它不是之前想过,总是最好用堆栈检查.
虽然您仍然需要将[date]存储为DATE类型,但您可以使用计算列:
Create Table yourTable(
[NOTIFICATION_MONTH] DATE,
, [MONTH_NOTIFIED] as DATEPART(MONTH, [NOTIFICATION_MONTH])
)
Run Code Online (Sandbox Code Playgroud)
添加PERSISTED会将其保存在表格中.没有它,它将每次自动计算.
在computed_column_expression下的MSDN CREATE TABLE页面上:
是一个定义计算列值的表达式.计算列是未物理存储在表中的虚拟列,除非该列标记为PERSISTED.该列是根据使用同一表中其他列的表达式计算的.例如,计算列可以具有以下定义:cost AS price*qty.[...]
另一种选择是:
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |