ansiextractfunction.cs

来自「NHibernate NET开发者所需的」· CS 代码 · 共 53 行

CS
53
字号
using System;
using System.Text.RegularExpressions;

namespace NHibernate.Dialect.Function
{
	/// <summary>
	/// 
	/// </summary>
	/// <remarks>
	/// <![CDATA[
	/// <extract expression> ::=
	///					EXTRACT <left paren> <extract field> FROM <extract source> <right paren>
	/// 
	///<extract field > ::=
	///			<datetime field> | <time zone field >
	/// 
	/// <datetime field> ::= 
	///			YEAR |
	///			MONTH |
	///			DAY |
	///			HOUR |
	///			MINUTE |
	///			SECOND
	/// 
	///<time zone field> ::= 
	///			TIMEZONE_HOUR	| 
	///			TIMEZONE_MINUTE
	/// ]]>
	/// </remarks>
	public class AnsiExtractFunction: SQLFunctionTemplate, IFunctionGrammar
	{
		public AnsiExtractFunction()
			: base(NHibernateUtil.Int32, "extract(?1 ?2 ?3)")
		{
		}

		#region IFunctionGrammar Members

		bool IFunctionGrammar.IsSeparator(string token)
		{
			return false;
		}

		bool IFunctionGrammar.IsKnownArgument(string token)
		{
			return Regex.IsMatch(token, "YEAR|MONTH|DAY|HOUR|MINUTE|SECOND|TIMEZONE_HOUR|TIMEZONE_MINUTE|FROM",
				RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
		}

		#endregion
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?