sql >> Database >  >> RDS >> Sqlserver

Ingebouwde sql Convert-functie gebruiken in nhibernate-criteria

Als je de CAST . zou kunnen accepteren in plaats van CONVERT (En ik ben er bijna zeker van dat je dat kunt) , dan is er een eenvoudigere oplossing.

In plaats van "SQL Server-gerelateerd" te noemen functie, laten we de abstractie aanroepen, die op de meeste DB-servers zou moeten werken (gebaseerd op ondersteunde NHibernate-dilacts)

Projections.Cast(NHibernateUtil.String, Projections.Property(searchCol))

Dus de Restriction gebruikt in een WHERE clausule kan er als volgt uitzien:

Restrictions
    .Like (
        Projections.Cast(NHibernateUtil.String, Projections.Property(searchCol))
        , "2009"
        , MatchMode.Anywhere
    )

En het resultaat gegenereerd door NHibernate, met behulp van het SQL Server-dialect zou zijn:

WHERE cast( this_.theColumn as NVARCHAR(255)) like @p1 ... @p1=N'%2009%'



  1. Hoe haal ik meerdere rijen op uit de opgeslagen procedure in MySQL?

  2. Datum formatteren naar voor mensen leesbaar formaat

  3. Oracle 10g accepteert een 5-cijferig jaar in een datum

  4. Oracle-datum lijkt gelijk aan